Fórum Root.cz
Hlavní témata => Software => Téma založeno: Jigdo 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?
-
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
-
find.
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.
-
Delal bych to takto:
$ 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.
-
Protoze -i matchne i pripadny uppercase extension, pokud to tam natahli widle
Prípadne použiť vo volaní find parameter -iname namiesto -name
-
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.
-
No a prča teprv bude zjistit velikost
Spočítat součet velikostí všech nalezených souborů taky není problém
find . -iname '*.flac' -o -iname '*.mp3' -o -iname '*.m4a' | xargs stat -c%s | paste -sd+ | bc