Выход не сохраняется в каких-либо файлах, нет. Но вы можете использовать команду script для записи сеанса терминала. Просто запустите
script
Затем запустите свои команды, как обычно. Когда вы наберете exit, вы выйдете из программы сценария. Все входные и выходные данные можно найти в файле с именем typescript в текущем каталоге. Вы можете использовать less -R typescript для чтения и поиска по нему.
Как обычно, рекомендуется прочитать руководство перед использованием новой команды. [F6]
В дополнение к очень хорошим grep и sed ответам, которые вы получили, вот некоторые другие инструменты, которые могут сделать то же самое:
Несколько способов Perl:perl -ne '/^HERE IT IS/ || print' file > newfile
perl -ne 'print if !/^HERE IT IS/' file > newfile
perl -ne 'print unless /^HERE IT IS/' file > newfile
Вы может добавить переключатель -i в любой из примеров, чтобы отредактировать файл: perl -i.bak -ne '/^HERE IT IS/ || print' file
(g) awk awk '!/^HERE IT IS/' file > newfile
Новые версии (4.1.1 и новее) GNU awk (по умолчанию awk on Linux) также может редактировать файл на месте: gawk -i inplace '!/^HERE IT IS/' file
Shell (bash, zsh, ksh, возможно, другие). Это вроде глупо, но это можно сделать, но другие инструменты лучше. while IFS= read -r line; do
[[ $line =~ ^"HERE IT IS" ]] || printf "%s\n" "$line"
done < file > newfile
Я бы использовал grep, чтобы отфильтровать их. Например:
grep -v "^HERE IT IS" infile > outfile
Затем переместите файл обратно в infile.
sed - это определенно путь.
Эта небольшая модификация команды @heemayl дает вам удалить строку, будет ли тот же случай использоваться в шаблоне или нет, из-за I в ссылке на шаблон.
sed -i '/HERE IT IS/Id' <file>
Если у вас было несколько файлов в каталоге, в котором вы хотели это сделать, вы могли бы объединить его с таким же образом.
find . -maxdepth 1 -type f -exec sed -i.bak '/HERE IT IS/Id' {} +
Параметр maxdepth означает, что это не будет возвращаться в директории.
Еще одна опция python:
#!/usr/bin/env python3
[print(l, end = "") for l in open(f).readlines() if not l.startswith("HERE IT IS")]
Где f - путь к файлу, между кавычками.
Grep
grep -P '^(?!HERE IT IS)' file
(?!HERE IT IS) утверждение отрицательного взгляда, которое заставляет двигатель регулярных выражений соответствовать всем границам начала строки (обычно это соответствует ^), только если за ним не следует строка HERE IT IS
Grep
#!/usr/bin/python3
import sys
fil = sys.argv[1]
with open(fil) as f:
for line in f:
if not line.startswith('HERE IT IS'):
print(line, end="")
Сохраните сценарий в файле, скажем script.py, а затем запустите его через следующую команду на терминале .
python3 script.py infile
Вы можете использовать Vim в режиме Ex:
ex -sc 'g/^HERE IT IS/d' -cx file
g глобальный поиск d удалить x сохранить и закрыть