Portál AbcLinuxu, 8. května 2025 06:49

Dotaz: Vyhledani souboru a seskupeni

9.7.2018 19:04 kafi | skóre: 25 | blog: muj_prvni_blog
Vyhledani souboru a seskupeni
Přečteno: 182×
Odpovědět | Admin

Pekny podvecer panove a damy, potrebuju provest nekolik operaci nad soubory. Mam v adresari cca 6K souboru. Strategie je nasledujici - napsat script, ktery vyhleda vsechny soubory obsahujici v nazvu napr. cislici "159". Bohuzel nevim jak vyhledat vsechny soubory a nakonec vysledky seskupit. Proste abych dostal na vystupu neco jako po sql selectu s group by. V adresari je treba 30ks souboru s cislici 159 pak 68 s cislici 158 atd.

soubor_158_001sad.db
soubor_158_002sad.db
soubor_158_003sad.db
soubor_159_001sad.db
soubor_159_002sad.db
soubor_159_003sad.db
soubor_159_004sad.db

po prikazu bych chtel dostat jen dva radku a to:

soubor_158_003sad.db
soubor_159_001sad.db
Nevedel by nekdo jak na to?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.7.2018 19:33 SpaceExplo
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zaklad: ls -1 *159* Pripadne presneji: ls -1 *_159_*.db

Info: - to "-1" je "minus jedna" a vypise jmena souboru po radku - hvezdicky zastupuji jakekoli mnozstvi jakychkoli znaku (takze treba i prazdno)
9.7.2018 19:37 SpaceExplo
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
Tak se divam, ze muj prvni komentar uplne nevysel. Tak znovu s formatovanim:

Zaklad: ls -1 *159*
Pripadne presneji: ls -1 *_159_*.db

Info:
- to "-1" je "minus jedna" a vypise jmena souboru po radku
- hvezdicky zastupuji jakekoli mnozstvi jakychkoli znaku (takze treba i prazdno)
9.7.2018 19:50 SpaceExplo
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
Hmm, tak uz jsem pochpopil o co jde, a zkusim to "skarede":

ls -1 | cut -d "_" -f 2 | sort | uniq -c
- ls s minus jedna vypise soubory jeden na radek
- cut z nich vysekne pouze to cislo mezi "_"
- sort to seradi (kvuli uniq)
- uniq vypise kolik ktereho paternu nasel
k3dAR avatar 9.7.2018 23:19 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
btw: ls kdyz jde vystup pres | dela soubor/radek automaticky ;-)
porad nemam telo, ale uz mam hlavu... nobody
9.7.2018 23:35 SpaceExplo
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
Ah, chytrej ls, dekuji.
Sice budu dale pouzivat "-1", jen abych mel jistotu, ale je to dobre vedet.
9.7.2018 19:41 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Vyhledani souboru a seskupeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Soubor začínající na soubor_158_ je tam 3x, který z nich to má vypsat?

Není jasné, zda předem znáte číslo, které chcete hledat, nebo zda chcete získat seznam všech souborů grupovaný dle nějakého kritéria.

Např. vypsat soubor v adresáři a všech podadresářích dle vzoru a vypsat všechny:
find -name "soubor_158_???sad.db" | sort -n
Nebo např. vypsat soubor v adresáři a všech podadresářích dle vzoru a vypsat ten s nejvyšším číslem:
find -name "soubor_158_???sad.db" | sort -n | tail -1
-- OldFrog

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.