Команда Linux uniq
Полный справочник команд Linux
Команда Linux uniq используется для проверки и удаления повторяющихся строк в текстовых файлах и обычно применяется вместе с командой sort.
uniq может проверять повторяющиеся строки в текстовых файлах.
Синтаксис
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
Parameters:
- -c или --count: Показывать количество повторов каждой строки рядом с этой строкой.
- -d или --repeated: Показывать только повторяющиеся строки.
- -f<fields> или --skip-fields=<fields>: Игнорировать указанные поля при сравнении.
- -s<chars> или --skip-chars=<chars>: Игнорировать указанные символы при сравнении.
- -u или --unique: Показывать только строки, которые встречаются один раз.
- -w<chars> или --check-chars=<chars>: Укажите символы для сравнения.
- --help: Показать справку.
- --version: Показать информацию о версии.
- [входной файл]: Укажите отсортированный текстовый файл. Если не указан, данные читаются из стандартного ввода;
- [выходной файл]: Укажите выходной файл. Если не указан, содержимое выводится на стандартное устройство вывода (терминал).
Примеры
В файле testfile строки 2, 3, 5, 6, 7 и 9 идентичны. Чтобы удалить повторяющиеся строки с помощью команды uniq, используйте следующую команду:
uniq testfile
Исходное содержимое testfile:
$ cat testfile #原有内容 test 30 test 30 test 30 Hello 95 Hello 95 Hello 95 Hello 95 Linux 85 Linux 85
После использования команды uniq для удаления повторяющихся строк вывод будет следующим:
$ uniq testfile #删除重复行后的内容 test 30 Hello 95 Linux 85
Проверьте файл, удалите повторяющиеся строки и отобразите количество вхождений каждой строки в начале строки. Используйте следующую команду:
uniq -c testfile
Результат вывода следующий:
$ uniq -c testfile #删除重复行后的内容 3 test 30 #前面的数字的意义为该行共出现了3次 4 Hello 95 #前面的数字的意义为该行共出现了4次 2 Linux 85 #前面的数字的意义为该行共出现了2次Если повторяющиеся строки не идут подряд, команда uniq не работает. То есть, если содержимое файла выглядит следующим образом, команда uniq не сработает:
$ cat testfile1 # 原有内容 test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85
В этом случае мы можем использовать sort:
$ sort testfile1 | uniq Hello 95 Linux 85 test 30
Подсчитайте, сколько раз каждая строка встречается в файле:
$ sort testfile1 | uniq -c 3 Hello 95 3 Linux 85 3 test 30
Найдите повторяющиеся строки в файле:
$ sort testfile1 | uniq -d Hello 95 Linux 85 test 30Другие расширения