hurtowa zmiana w plikach

Karol Kreński pldmimooh w inf.sgsp.edu.pl
Pon, 25 Paź 2004, 16:57:13 CEST


> Dnia pon 25. października 2004 01:15, Karol Kreński napisał:
> [...]
> > Powyższe działa tylko w danym katalogu (zamiast również w podkatalogach)
> > i wyłoży się jeżeli masz spacje w nazwach plików. Lepsze jest:
> > 	find katalog -print0 | xargs -0 perl -pi -e 's%tekst1%tekst2%g'
> >
> > `foo --help' często aktualniejsze niż `man foo'
> 
> O podkatalogach kolega nic nie mówił. Może tego nie chciał? Co do nazw ze 
> spacją - no dobra, cudzysłowy wpisałem tylko w jednym miejscu wkoło $nazwa 
> zamiast wszędzie, moje niedopatrzenie ;-) Ale napisanie tego zajęło mi 
> tylko 2-3 minuty, a poza tym zadziałało koledze jak trzeba :-) Nie proszono 
> o rowiązanie stałe tylko o możliwość szybkiego zrobienia prostej czynności 
> :-)
Spokojnie - mój post miał być raczej dodatkową pomocą niż krytyką Twojej
propozycji. Przepraszam, jeżeli wyszło zbyt ofensywnie. Jeżeli nie ma
być podkatalogów to find -maxdepth 1. 
 
> Dla odmiany twoje niepotrzebie obrabia *nazwy* podkatalogów, podobnie
> jak moje zresztą (żeby nie było, że przyganiał kocioł garnkowi ;-) ).
> Moje za to nie wywróci się w przypadku, gdy tych plików jest bardzo
> dużo (kwestia limitu ilości parametrów do polecenia, na czym polegnie
> perl).
find raczej nie ma szans prześcignąć xargs w takim stopniu, żeby perl
się wyłożył na limicie argumentów. To polecenie jest uznawane za
bezpieczne właśnie dla długich list argumentów. 
 
> Ale nie ma sensu się spierać. Jedno i drugie jest dobre, jeśli tylko
> robi to, do czego zostało stworzone.

Karol




Więcej informacji o liście dyskusyjnej pld-users-pl