Відповіді:
Ось для чого 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"зберегти зміни та вийти.