Masowa edycja dużej ilości plików tekstowych
Kategoria: FAQ, etykiety: skrypty, system
Dodany: 2009-08-02 23:56
(zmodyfikowany: 2009-08-16 12:57)
Przez: bercik
Wyświetleń: 11478
Jak w wszystkich plikach *.txt z danego katalogu i podkatalogów zamienić jakiś ciąg znaków na inny?
Aby dokonać masowej edycji plików najprościej posłużyć się edytorem sed opakowanym w skrypcik podający mu listę plików do edycji:
grep -r --include='*.txt' 'Napis ZAMIENIANY' * | tr ':' ' ' | while read f ;
do echo $f; sed 's#Napis ZAMIENIANY#ZAMIENNIK#g' $f>/tmp/zamiennik;
mv -f /tmp/zamiennik $f;
done
Modyfikacja tego skryptu (bez pętli while) może posłużyć do wyszukania plików spełniających zadane kryterium nazwy i treści w pliku.