Рейтинг:3

Как удалить повторяющиеся строки только в том случае, если они находятся сразу после друг друга в файле

флаг in
Cas

Допустим, у меня есть следующий файл:

$ кошка test.txt
а
-----
б
-----
-----
с
-----
-----
-----
г
-----
е
-----
-----

Теперь я хочу удалить все -----, но только если они повторяются друг за другом. Таким образом, результат должен выглядеть следующим образом:

а
-----
б
-----
с
-----
г
-----
е
-----

Я пытался grep -Pvz -- "-----\n-----", но это не сработало.

Рейтинг:10
флаг hr

Это именно то, что уникальный команда сделана для:

ИМЯ
       uniq — сообщать или опускать повторяющиеся строки

СИНТАКСИС
       uniq [ОПЦИЯ]... [ВВОД [ВЫВОД]]

ОПИСАНИЕ
       Фильтровать соседние совпадающие строки из INPUT (или стандартного ввода), записывая в OUTPUT
       (или стандартный вывод).

       Без параметров совпадающие строки объединяются с первым вхождением.

Так

$ уникальный test.txt 
а
-----
б
-----
с
-----
д
-----
е
-----

В качестве альтернативы вы можете использовать этот однострочный sed 69.Удалить повторяющиеся последовательные строки из файла (эмулирует «uniq») от Объяснение однострочников Sed, часть III: выборочное удаление определенных строк и специальных приложений

sed '$!N; /^\(.*\)\n\1$/!P; Тест.txt

что может быть предпочтительнее, если вы хотите отредактировать test.txt на месте (путем добавления или же --на месте вариант).

Рейтинг:0
флаг ai

просто делать уникальное имя файла.txt Как следует из названия, остаются только уникальные строки, а повторы объединяются.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.