awk
Команда ниже удаляет все повторяющиеся строки, как описано здесь :
awk '!seen[$0]++'
Если текст содержит пустые строки, будут удалены все, кроме одной пустой строки.
Как сохранить все пустые строки при удалении всех непустых повторяющихся строк, используя только awk
? Пожалуйста, также включите краткое объяснение.
Все, что вам нужно сделать, это сначала проверить наличие пустой (действительно пустой или просто пустой) строки.
источник
Вот еще одно
awk
решение, похожее на ответ @ Thor, менее сжатое, но более эффективное:При этом мы только проверяем
a[$0]
, существует или нет. Если нет, инициализируйте его, затем напечатайте. В этом случае у нас нет никаких ссылок, назначения,a[$0]
если оно существовало.источник