Как удалить повторяющиеся строки, игнорируя табуляцию или пробелы

Проблема возникает из-за того, что kdesuпытается использовать su, даже если вы не установили пароль root.

kdesuможно настроить на использование sudoвместо su. Вам нужно создать файл в ~/.config/kdesurc с содержимым:

[super-user-command]
super-user-command=sudo

Согласно инструкциям на вики-архиве. Ссылка . Кредит @steeldriver для ответа.

4
05.03.2021, 14:38
3 ответа

Принудительно перестроить запись с помощью$1=$1! Это сжимает все смежные пространства в одно.

awk '{$1=$1};!seen[$0]++'
13
18.03.2021, 22:27

Используйте tr, чтобы заменить табуляцию пробелом и сжать повторы(-s):

 tr -s $'\t' ' ' < /etc/fstab | awk '!NF || !seen[$0]++' > /etc/fstab.update
6
18.03.2021, 22:27

Используйте этот лайнер Perl one -для обработки любого количества пробелов как одного пробела:

perl -lane 'print unless $seen{"@F"}++' in.txt > out.txt

Если вы хотите полностью игнорировать пробелы, используйте:

perl -lane '$s = join "", @F; print unless $seen{$s}++' in.txt > out.txt

Оболочка Perl one -использует эти флаги командной строки:
-e:Указывает Perl искать код в строке -, а не в файле.
-n:Перебирать ввод по одной строке за раз, назначая его на $_по умолчанию.
-l:Удалите разделитель входных строк("\n"на *NIX по умолчанию )перед выполнением кода в строке -и добавьте его при печати.
-a:Разбить $_на массив @Fпо пробелам или по регулярному выражению, указанному в опции -F.

СМ. ТАКЖЕ:
perldoc perlrun:как запустить интерпретатор Perl :переключатели командной строки

5
18.03.2021, 22:27

Теги

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