Celkový součet specifických souborů v adresáři

Jigdo

  • *****
  • 506
    • Zobrazit profil
Celkový součet specifických souborů v adresáři
« kdy: 18. 10. 2024, 11:01:27 »
Potrebuji spocitat kolik je celkove "VSECH" souboru
*.flac,*.mp3 a *.m4a"
v jedon adresari, ktery ma pres xxx podadresaru
a ty podadresare maji jeste svoje podpodadresare ........

Ty adresare obashuji i *.jpg, *.m3u8, *.pdf atd. a ty nepotrebuji ve vysledku...

Nevi nekdo jak na to z cli/bash?


Re:Bash - Celkovy soucet specifickych souboru ve specifickem adresari
« Odpověď #1 kdy: 18. 10. 2024, 11:15:48 »
ls -R -1 | grep -E 'mp3|wav'  | wc

* ls s parametry vylistuje i adresare a jednu polozku na radek
* grep ve vypisu hleda podslova mp3 a wav
* wc spocita pocet radku, slov, pismen

mhepp

  • ***
  • 160
    • Zobrazit profil
    • E-mail
Re:Bash - Celkovy soucet specifickych souboru ve specifickem adresari
« Odpověď #2 kdy: 18. 10. 2024, 11:16:03 »
find.

Kód: [Vybrat]
find -name "*.flac" -o -name "*.mp3" -o -name "*m4a" | wc -l

Chceš-li omezit hloubku prohledávání, přidej -maxdepth N jako první parametr.

RDa

  • *****
  • 2 771
    • Zobrazit profil
    • E-mail
Re:Celkový součet specifických souborů v adresáři
« Odpověď #3 kdy: 18. 10. 2024, 13:16:58 »
Delal bych to takto:

Kód: [Vybrat]
$ find . -type f | grep -aiE '[.](flac|mp[34])$' | wc -l
96891

Protoze -a (ascii) matchne i spatny codepage v nazvu (musim to fixnout nekdy)
Protoze -i matchne i pripadny uppercase extension, pokud to tam natahli widle

U findu by mohlo byt zajimavejsi "files larger than X" a pak ten grep naopak (s -v) - at zjistite zda je tam jeste neco zajimaveho za pripony.

Re:Celkový součet specifických souborů v adresáři
« Odpověď #4 kdy: 18. 10. 2024, 15:46:39 »
Protoze -i matchne i pripadny uppercase extension, pokud to tam natahli widle

Prípadne použiť vo volaní find parameter -iname namiesto -name


Re:Celkový součet specifických souborů v adresáři
« Odpověď #5 kdy: 18. 10. 2024, 21:46:59 »
No a prča teprv bude zjistit velikost, protože  du to nedá přesně ani s parametrem -apparent-size, protože do toho započítává velikost složek, které z(lidské definice) mají 0 bajtů, a jako třešnička na dortu ty složky ještě na jiném filesystému ty složky zabírají jiné místo.

možná to bude následovat  vdalším kroku.Takže bych šel na to přes find -type f . prý ale existuje příkaz tree.

Palec nahoru RDa  za -E  místo -P  v grepu, protože to může být rychlejší. I když jsem ale narazil na situaci, kdy bylo naopak -P rychlejší ,což uplně znegovalo mood z jiného vlákna, kde jsem si stěžoval na pomalo grepu -P.

Re:Celkový součet specifických souborů v adresáři
« Odpověď #6 kdy: 19. 10. 2024, 02:47:35 »
No a prča teprv bude zjistit velikost
Spočítat součet velikostí všech nalezených souborů taky není problém
Kód: [Vybrat]
find . -iname '*.flac' -o -iname '*.mp3' -o -iname '*.m4a' | xargs stat -c%s | paste -sd+ | bc