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