Jak „wyszukiwać i zamieniać” wiele plików?


11

Korzystam z greppolecenia, aby wyszukać ciąg w wielu plikach. Czy istnieje coś podobnego do „wyszukaj i zamień”?

Odpowiedzi:


19

Szukasz sedpolecenia. Na przykład, aby zamienić „psa” na „kota” we wszystkich plikach tekstowych w bieżącym katalogu:

sed -i 's/dog/cat/' *.txt

1
Prosty i miły.
Luis Alvarado

1

przychodzi mi na myśl sed. Przykład:

sed s/cat/dog/ <input >output

To wyszukuje kota w linii i umieszcza psa na swoim miejscu w pliku wejściowym i zapisuje do pliku wyjściowego.



0

Możesz używać Vima w trybie Ex:

for b in *.txt
do
  ex -sc '%s/OLD/NEW/g|x' "$b"
done
  1. % wybierz wszystkie linie

  2. s zastąpić

  3. g zamień wszystkie wystąpienia w każdej linii

  4. x Zapisz i zamknij

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.