Как я пишу все строки от меньше до файла?

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'

При необходимости в чем-то более сложном используйте жемчуг.

78
13.04.2017, 15:36
3 ответа

Из минус введите 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.
Это должно работать независимо от того, является ли входной канал или обычный файл.

108
27.01.2020, 19:30

Один из способов сделать это без TEE следующим образом.
Меньше / путь / к / ввод> / путь / к / вывод
вышеупомянутая / путь / к / вывод , если он уже существует.

сделать то же самое, но добавьте к / Путь / к / выводу следующим образом.
Меньше / путь / к / ввод >> / путь / к / вывод

, чтобы сохранить текст в Меньше После того, как вы его открыли, вы можете использовать функцию файла Сохранить.
Когда в меньше , нажмите s . Затем введите имя файла.
Если вы использовали трубу, файл будет автоматически записываться в рабочий каталог.
Если вы не использовали трубу, вы откроете файл с текстом (для которого вы можете сохранить).
Я считаю, что файл будет открыт в Vim .

0
27.01.2020, 19:30

Вы не используете меньше, вы используете Tee, а затем трубу Tee меньше.

./ Программа | Tee Program.out |. Менее

-2
27.01.2020, 19:30

Теги

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