Как удалить все строки из текстового файла сразу после следующей строки? - PullRequest
1 голос
/ 30 марта 2020

В текстовом файле мне нужно удалить строки, которые точно начинаются, как следующая строка. См. Пример ниже.

Ввод:

I like
I like apples
I like apples and oranges
more
more everyday
more everyday
more everyday the more
more everyday the more I play
I
I like

Ввод:

I like apples and oranges
more everyday the more I play
I like

Ответы [ 2 ]

2 голосов
/ 30 марта 2020

В одну сторону:

$ perl -lne 'print $last unless /^\Q$last/; $last = $_;
             END { print $last }' input.txt
I like apples and oranges
more everyday the more I play
I like
1 голос
/ 30 марта 2020

Этот фильтр sed считывает следующую строку и удаляет предыдущую, если она соответствует:

sed ':0;N;s/^\(.*\)\n\1/\1/;t0;P;D'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...