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ń: 11047

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.

OSnews Wykop Blip Flaker Kciuk Śledzik Facebook Identi.ca Twitter del.icio.us Google Bookmarks