[+] zmiana tekstu we wszystkich plikach w katalogu - sed

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

[+] zmiana tekstu we wszystkich plikach w katalogu - sed

Post autor: sector »

Witam mam maly problem.

Potrzebuje napisac skrypt, ktory bedzie mi zmienial jakis tekst na inny. O ile na pliku to nie jest problem, to potrzebuje to zrobic tak, aby zmienial te wartosci we wszystkich plikach w danym katalogu.

Czy starczy uzyc sed czy musze czegos jeszcze uzyc? Prosilbym o male naswietlenie tematu a z reszta powinienem porawdzic sobie sam.
piter
Beginner
Posty: 128
Rejestracja: 09 lutego 2008, 12:45

Post autor: piter »

Kod: Zaznacz cały

sed -i 's/costam/cosinnego/' *
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

Post autor: sector »

wielkie dzieki, obadam!
sfp
Posty: 3
Rejestracja: 31 lipca 2010, 18:35

Post autor: sfp »

Możesz też użyć 'for' w Bash - to Ci pozwoli ciekawiej filtrować pliki do obróbki:
proste filtrowanie można uzyskać tak:

Kod: Zaznacz cały

sed 's/stare/nowe/g' rozdzial*.txt
bardziej ogólna jest:

Kod: Zaznacz cały

for plik in $( ls ); do
sed 's/stare/nowe/g' $plik
done
W miejsce ls możesz wstawić cokolwiek, np. find z licznymi opcjami:

Kod: Zaznacz cały

find sciezka -name rozdzial\*.txt
wyszuka wszystkie pliki rozdzial*.txt we wszystkich podkatalogach katalogu wskazanego przez 'sciezka'.
Krótkie wprowadzenie do pisania skryptów masz np. tu: http://www.ournet.pl/kursbasha/main.html
Sprawdź tam szczegóły konstrukcji, bo piszę z pamięci i mogłem cos zgubić.
ODPOWIEDZ