Portál AbcLinuxu, 9. května 2025 03:03

Dotaz: Aplikace prikazu na vsechny soubory

21.3.2013 16:00 Martin Tichy
Aplikace prikazu na vsechny soubory
Přečteno: 141×
Odpovědět | Admin
Dobry den, mam clenitou adresarovou strukturu, ve ktere se nachazeji textove soubory. Na vsechny tyto soubory potrebuji aplikovat prikaz:
sed -r "s:\x1B\[[0-9;]*[mK]::g"
Tedy odstraneni BASH barvicek. Zkousel jsem to v kombinaci s find a exec ale porad se nemuzu dostat k cili.

Neco ve smyslu:
find . -name '*' -exec 'sed -r "s:\x1B\[[0-9;]*[mK]::g"' "{}" \;
Nefunguje. Nejradeji bych byl aby to slo udelat nejakym podobnym one-linerem misto x-radkoveho skriptu. Muzete mi prosim poradit?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.3.2013 16:22 NN
Rozbalit Rozbalit vše Re: Aplikace prikazu na vsechny soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zadat '.' u cesty nemusis, pokud ti staci aktualni adresar, pripadne je lepsi uvadet celou cestu. Vyraz -name '*' v podstate nerika vubec nic. Substituce {} se nedava do uvozovek. Proc jsi dal sed v exec do dvojtych uvozovek, misto puvodnich jednoduchych ? Imho jednoduche jsou bezpecnejsi.. Pokud nespecifikujes type budou se vyhledavat i adresare. Pokud u sed nezadas direktivu -i prikaz se pouze provede, ale nezapise..

Takze bych to videl takto:
find -type f -exec sed -ir 's:\x1B\[[0-9;]*[mK]::g' {} \;

pripadne,

find -type f | xargs sed -ir 's:\x1B\[[0-9;]*[mK]::g'
za vysledek nerucim..
21.3.2013 16:23 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Aplikace prikazu na vsechny soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proc mas sed s parametrem v apostrofech? S nimi bys mel skoncit na find: `sed -r "s:\\x1B\\[[0-9;]*[mK]::g"': No such file or directory
Bez nich to v pohode slape..

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.