О, я думаю, сначала нужно установить gcc-multilib
с помощью:
sudo apt install gcc-multilib
Для этого и предназначена стандартная команда uniq
.
uniq your-file
Обратите внимание, что некоторые uniq
реализации, такие как GNU uniq
, дадут вам первую из последовательности строк, которые сортируют одно и то же (, где strcoll()
возвращает 0 ), а не байты от -до -идентичны байтам (, где memcmp()
или strcmp()
возвращает 0 ). Чтобы принудительно выполнить сравнение байтов независимо от реализации uniq
, вы можете установить локаль на C
с помощью:
LC_ALL=C uniq your-file
Vim прекрасно справляется с этой задачей:
:g/\v^(.*\n)\1/d
Или, если вы предпочитаете использовать vim в качестве инструмента командной строки, вы можете сделать это как
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
Таким образом, вам не придется ломать голову над выходом из vim позже;)
Пояснение:
:g/
Во всех строках, соответствующих этому регулярному выражению...
\v^(.*\n)\1
Любая строка, за которой следует сама...
/d
выполнить команду d elete (удалить текущую строку ). -c "wq"
— сохранить изменения и выйти.