sed с несколькими выражение для оперативного arguement

Известное решение агностика ОС, когда конфликты, кажется, прослеживает это, состоит в том, чтобы отключить все плагины один за другим и пытающийся искать снова с N. Это скучно, но это сделает задание.

Только для получения информации, если Вы вводите ?, это сделает это также.

24
17.12.2014, 10:26
4 ответа

В зависимости от версии SED в вашей системе вы можете сделать

sed -i 's/Some/any/; s/item/stuff/' file

, вам не нужен G после окончания Slash в команде S здесь, поскольку вы делаете только одну замену на строку.

В качестве альтернативы:

sed -i -e 's/Some/any/' -e 's/item/stuff/' file

Опция -I SED SED для редактирования файлов на месте; Если есть символы сразу после -I , то SED создает резервную копию исходного файла и использует эти символы в качестве расширения файла резервного копирования. Например,

sed -i.bak 's/Some/any/; s/item/stuff/' file

или

sed -i'.bak' 's/Some/any/; s/item/stuff/' file

будет изменять файл , сохраняя оригинал в file.bak .

Конечно, на системе Unix (или UNIX), мы обычно используем «~», а не «.bak», поэтому

sed -i~ 's/Some/any/;s/item/stuff/' file
26
27.01.2020, 19:41

Многократное выражение с использованием нескольких -E . Опции :

sed -i.bk -e 's/Some/any/g' -e 's/item/stuff/g' file

Или вы можете использовать только один:

sed -i.bk -e 's/Some/any/g;s/item/stuff/g' file

Вы должны дать расширение для файла резервного копирования, поскольку при некоторой реализации Из SED , как osx SED не работает с пустым расширением (вы должны использовать SED -I '' , чтобы переопределить исходные файлы).

5
27.01.2020, 19:41

Вы можете цеплять SD-выражения вместе с «;»

%sed -i 's/Some/any/g;s/item/stuff/g' file1
%cat file1
anything  123 stuff1
anything  456 stuff2
anything  768 stuff3
anything  353 stuff4
10
27.01.2020, 19:41

Вы можете использовать Vim в режиме Ex:

ex -sc '%s/Some/any/|%s/item/stuff/|x' file
  1. % выбрать все строки

  2. s заменить

  3. x сохранить и закрыть

1
27.01.2020, 19:41

Теги

Похожие вопросы