Portál AbcLinuxu, 12. května 2025 09:08

Dotaz: třídění soubourů

28.4.2013 13:41 peter
třídění soubourů
Přečteno: 277×
Odpovědět | Admin

Program Photorec mi vytvořil obnovu disku. Ve složece Obnova mám 52 složek, každou se stovkami souborů. Někde zde potřebuji vyhledat textový soubor .doc, který obsahuje slovo "buddha". Pomocí příkazu grep b.u.d.d.h.a *.doc umím vyhledat všechny .doc soubory obsahující slovo buddha, ale bohužel při tomto zadání nefunguje -r pro rekurzivní prohledávání složek a všech 52 složek se mi takto prohledáváat nechce.

Řešením by mohlo být vyhledat všechny *.doc soubory a vykopírovat je do jedné složky a zde použít grep, ale spousta souborů ma stejné jméno a já je nechci přepisovat.

Poradíte mi jak rekurzivně prohledat všechny složky, vykopírovat všechny soubory specifikované koncovkou (*.doc nebo *.odt) a v případě stejných jmen je automaticky přejmenovat? Děkuji


Řešení dotazu:


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

Odpovědi

28.4.2013 15:19 tyctor
Rozbalit Rozbalit vše Re: třídění soubourů
Odpovědět | | Sbalit | Link | Blokovat | Admin
pozri sa na find -exec
28.4.2013 18:02 pepek
Rozbalit Rozbalit vše Re: třídění soubourů

Doufal jsem v konkrétní radu, ale nic, tak jsem se tedy vydal pátrat na vlastní pěst a našel jsem toto:

find /nejaka/cesta -type f -name "*.doc" -exec cp {} /nejaka/cesta/vycuc/???.doc \;

hledá v adresáři /nejaka/cesta, pouze soubory -type f, končící na .doc -name "*.doc", -exec spustí pro ně: kopíruj cp nalezené soubory {}, kam /nejaka/cesta/vycuc/???.doc \;

grep /nejaka/cesta/vycuc b.u.d.d.h.a *.doc

grep vyhledej, /nejaka/cesta/vycuc kde, b.u.d.d.h.a co, *.doc v souborech s jakou koncovkou

Místo ??? potřebuji dosadit nějakou proměnou, podle které se budou soubory přejmenovávat, zkoušel jsem čas, ale sekundy jsou moc pomalé na rychlost kopírování, nějaké nápady, jak tam nějak vložit třeba proměnou n a pro další n+1? Jsem laik a nemám o tom páru, tak za každou konkrétní radu budu rád.

28.4.2013 21:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: třídění soubourů
ale sekundy jsou moc pomalé - možná nanosekundy jsou rychlejší, ale chtělo by to změřit…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
28.4.2013 23:35 Ash | skóre: 53
Rozbalit Rozbalit vše Re: třídění soubourů
Mně ta rada připadá dost konkrétní, dokonce jsi pátráním na vlastní pěst došel ke stejnému výsledku jaký ti poradil tyctor :) Za -exec může následovat místo cp přímo i ten tvůj grep, čímž je problém vyřešen (dodatečným požadavkem na kopírování sis řešení zkomplikoval).
Řešení 1× (rADOn)
28.4.2013 17:53 potato
Rozbalit Rozbalit vše Re: třídění soubourů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože -r znamená rekursivní prohledávání. Takže musíš zadat adresář, v souboru se rekursivně jaksi prohledávat nedá...
grep --include '*.doc' -r 'b.u.d.h.a' .
28.4.2013 18:10 pepek
Rozbalit Rozbalit vše Re: třídění soubourů
Díky za pomoc, tvá rada pomohla, ale do budoucna by se mohlo hodit i to třídění pomocí find -exec cp, když budu chtít z obnovy vytáhnout třeba všechny jpg starší do 3 dnů a podob. do jedné složky pro identifikaci toho "wanted file", tzn pořád řeším rename files during copy...

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.