Awk испытывает недостаток в обратных ссылках в заменах регулярного выражения, таким образом, он не может легко сделать замен в контексте. Sed может сделать это:
sed -e 's/\(\[[^]]*\)BAR/\1FOO/' 's/\(\[[^]]*\)ME/\1FOO/'
Если Ваш sed поддерживает чередование в regexps:
sed -e 's/\(\[[^]]*\)\(BAR\|ME\)/\1FOO/'
Это только обрабатывает единственную замену в каждой паре скобки, даже с g
суффикс, потому что [^]]*
соответствует самой длинной последовательности без закрывающих квадратных скобок. Для замены всех их используйте явный цикл; обратите внимание, что это только работает если FOO
не подстрока BAR
или ME
.
sed -e ': a' -e 's/\(\[[^]]*\)BAR/\1FOO/' -e 't a' \
-e 's/\(\[[^]]*\)ME/\1FOO/' -e 't a'
При необходимости в чем-то более сложном используйте жемчуг.
Из минус
введите s, затем введите имя файла, в который хотите сохранить, затем Enter.
На странице man
в разделе COMMANDS
:
s filename
Save the input to a file. This only works if the input is a pipe, not an ordinary file.
man
также указано, что в зависимости от вашей конкретной установки команда s
может быть недоступна. В этом случае вы можете перейти в строку 1 с:
g or < or ESC-<
Go to line N in the file, default 1 (beginning of file).
и передать все содержимое в cat
с:
| <m> shell-command
<m> represents any mark letter. Pipes a section of the input file to the
given shell command. The section of the file to be piped is between the
first line on the current screen and the position marked by the letter.
<m> may also be ^ or $ to indicate beginning or end of file respectively.
так что либо:
g|$cat > filename
, либо:
<|$cat > filename
т.е. наберите г или < (г или меньше ) | $ (труба, затем доллар), затем кот > имя файла
и Enter.
Это должно работать независимо от того, является ли входной канал или обычный файл.
Один из способов сделать это без TEE
следующим образом.
Меньше / путь / к / ввод> / путь / к / вывод
вышеупомянутая / путь / к / вывод
, если он уже существует.
сделать то же самое, но добавьте к / Путь / к / выводу
следующим образом.
Меньше / путь / к / ввод >> / путь / к / вывод
, чтобы сохранить текст в Меньше
После того, как вы его открыли, вы можете использовать функцию файла Сохранить.
Когда в меньше
, нажмите s
. Затем введите имя файла.
Если вы использовали трубу, файл будет автоматически записываться в рабочий каталог.
Если вы не использовали трубу, вы откроете файл с текстом (для которого вы можете сохранить).
Я считаю, что файл будет открыт в Vim
.
Вы не используете меньше, вы используете Tee, а затем трубу Tee меньше.
./ Программа | Tee Program.out |. Менее