Используйте sed, чтобы удалить шаблоны на ряде линий - PullRequest
0 голосов
/ 07 февраля 2020

У меня большой текстовый файл, который я хотел бы разделить на сегменты и использовать sed для удаления определенных шаблонов на месте. Я хотел бы сделать это в одной командной строке, используя канал. Например:

sed -n 1,10p <text file> | sed -i 's/<pattern to remove>//'

Приведенный выше код пытается взять первые 10 строк текстового файла и удалить шаблоны из 10 строк на месте. Полученный текстовый файл должен иметь первые 10 измененных строк. Приведенный выше код не работает, потому что вторая команда после канала требует входной файл. Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Это похоже на то, что вы просите ....

sed -ni '1,10s/pattern//p' file
0 голосов
/ 07 февраля 2020

Что-то вроде

sed -i '1,10s/pattern//' foo.txt

, хотя для редактирования файла на месте я предпочитаю ed или perl вместо того, чтобы полагаться на нестандартное расширение sed, например -i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...