Использование sed
для изменения файла на месте:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Это дает указание sed
удалить все строки, не соответствующие шаблону. Сам шаблон ^
(начало строки), сопровождается либо либо, report
либо -t
сопровождается либо h
или o
.
Следует отметить, что это не фактическая модификация на месте: sed
создает временную резервную копию и перезаписывает ее исходным файлом.
Если вы хотите sed
сохранить резервную копию исходного файла (что может быть хорошей идеей, если файл содержит критические данные), дайте -i
коммутатору расширение для создания файла резервной копии:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
изменит your_file
и создаст резервную копию оригинала под названием your_file.bak
.
Примечание стороны
Пожалуйста, не истолковывайте мои намерения и не обижайтесь на это, но я заметил, что у вас есть много похожих вопросов, связанных с регулярным выражением / обработкой текста. Я советую вам начать обучение sed
, awk
и grep
самостоятельно, чтобы помочь ускорить вашу производительность. Опять же, не поймите меня неправильно, я слишком рад помочь (как и большинство людей здесь); просто я думаю, что вы получите огромную выгоду от приобретения этих инструментов для ежедневного использования.
Просто чтобы доказать, насколько полезны люди здесь, рассмотрите предложение @ slm в комментариях ниже и не стесняйтесь заходить в этот чат в любое время для вопросов.