Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: makak 19 Srpna 2010, 13:26:01

Název: pomoc s príkazom
Přispěvatel: makak 19 Srpna 2010, 13:26:01
Potrebujem v jednej zložke (a všetkých jej podzložkách) vymazať všetky súbory, ktoré nemajú koncovku .mp3, .wav, .m4a a to isté s veľkými písmenami - čiže všetky hudobné súbory a potrebujem aby ste mi pomohli s reg. výrazmi.

find . -name [--sem neviem čo dať--] | xargs rm -i

Práve to gúglim, ale mám ešte niečo na právi popri tom. Keby mi niekto rýchlo odpovedal, bol by som vďačný.
Název: Re: pomoc s príkazom
Přispěvatel: makak 19 Srpna 2010, 13:30:59
Alebo že by takto ?

Kód: [Vybrat]
rm !(*.mp3|*.wma|*.m4a|.MP3|*.WMA|*.M4A)
Název: Re: pomoc s príkazom
Přispěvatel: arrange 19 Srpna 2010, 13:55:33
Třeba
Kód: [Vybrat]
find . -regextype posix-egrep -type f \! -iregex '.*\.(mp3|wma|m4a)'Opatrně při mazání, radši použij třeba mv nebo trash než rm nebo -delete.
Název: Re: pomoc s príkazom
Přispěvatel: makak 19 Srpna 2010, 15:02:38
find -regextype posix-egrep -type f \! -iregex '.*\.(mp3|wma|m4a|MP3|WMA|M4A)' | xargs rm

Tak som skúsil toto, ale je tu problém. Keďže ide o hudobné súbory, tak sú samozrejme v názvoch súborov medzery. A kvôli tomu mi to hádže chyby. Čo s tým ? Dá sa to riešiť ?
Název: Re: pomoc s príkazom
Přispěvatel: makak 19 Srpna 2010, 16:21:10
Kam mám v tomto dať ten regexp ? (v takej forme ako si to dal ty to nespravilo nič)

Ten predchádzajúci command bol dobrý, keď som dal echo miesto rm tak to fungovalo v pohode - pekne mi to vypísalo názvy všetkých súborov. Ak som ale dal rm, tak to bralo ako jeden argument a za každým názvom súboru bolo "\n". Potreboval by som nejak spraviť, aby to "\n" bralo ako koniec argumentu.
Název: Re: pomoc s príkazom
Přispěvatel: arrange 19 Srpna 2010, 19:26:51
K tomu právě slouží -delete, ale je to (téměř) nenávratná operace
Kód: [Vybrat]
find . -regextype posix-egrep -type f ! -iregex '.*\.(mp3|wma|m4a)' -delete
Nebo použij trash - v případě problémů je možno vše obnovit z koše.
Kód: [Vybrat]
sudo apt-get install trash-cli
find . -regextype posix-egrep -type f ! -iregex '.*\.(mp3|wma|m4a)' -exec trash '{}' \;
Název: Re: pomoc s príkazom
Přispěvatel: makak 19 Srpna 2010, 19:41:52
To nevadí, testoval som to najprv na pár umelo vytvorených súboroch, potom na zálohe a potom som prešiel na môj disk :)

Dík moc :)
Název: Re: pomoc s príkazom
Přispěvatel: makak 20 Srpna 2010, 16:42:52
Momentálne hľadám nejaké riešenie ako opraviť všetky ID3 tagy. Mám super program EasyTAG, ktorý mi vyplní tagy krásne podľa tvaru názvu súboru. Problém je teraz v tom, že niekde je názov súboru v tvare "[číslo] - [názov]", inde "[číslo].  [názov]", niektoré zas "[číslo] [názov]".

Chcel by som, aby to všade bolo v tvare "[číslo] - [názov]", čiže pre všetky súbory, ktoré majú 2 čísla za sebou a nenasleduje za nimi " - ", tak vymaže všetko po ďalší znak a dá tam " - ".

To je výzva :) Fakt neviem ako na to...

find -regextype posix-egrep -type f \! -iregex '.[0-9][0-9] - *' - toto mi hádzalo všetky súbory.