найти две последовательные повторяющиеся строки

Если вы РЕАЛЬНО хотите этого, то после ввода :help используйте один из этих вариантов :

:tab split

Или

:tabedit %

Это заставит новую копию текущей страницы (help) расположиться на новой вкладке. Если вы хотите переместиться, нажмите Ctrl-W (отпустить) Shift-T. Я думаю, что эта комбинация клавиш - то, что вам действительно нужно.

Если вы хотите быть проактивным и открывать справку на новой вкладке, :tab help будет достаточно

Related Stuff:

5
25.01.2017, 01:40
3 ответа

Другой вариант:

grep -zPo '\n(.+)\n\1\n'

Таким образом, мы можем добавить дополнительную настройку (например, принять дополнительные пробелы и т. д.)

Обновление: как указал @thor, это не захват повторений в начале файла. Для освещения этой ситуации используйте

grep -zPo '(?<!.)(.+\n)\1' 
4
27.01.2020, 20:34

Uniq должно хватить:

$ cat c.txt
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05.ear
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05.xml

$ uniq -D c.txt
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter

$ uniq c.txt
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05.ear
 OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
 OQ-63/ECC/Global/MES/54/ECC-MRP-S05.xml

По умолчанию uniq проверяет соседние строки входного файла. Таким образом, для несортированного файла (например, в вашем случае) uniq выполнит нужную вам работу.

вас также могут заинтересовать опции uniq -d и -u. См. Дополнительную информацию на странице руководства (-d печатает только одну из обеих повторяющихся строк, -u печатает только строки uniq - удаляет обе повторяющиеся записи).

8
27.01.2020, 20:34

Еще один вариант с AWK:

awk 'x !~ $0; {x=$0}'

Таким образом, вы можете получить то же поведение, что и у uniq, но также можете делать это для каждого столбца.

awk -F/ 'x !~ $2; {x=$2}'

-F устанавливает разделитель полей.

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

$ cat c.txt
 line/one
 line/two
 otherline/two
 yetanotherline/two
 line/three

$ awk -F/ 'x !~ $2; {x=$2}' c.txt
 line/one
 line/two
 line/three
1
27.01.2020, 20:34

Теги

Похожие вопросы