Команда Linux uniq

Linux 命令大全Полный справочник команд 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  

Linux 命令大全Полный справочник команд Linux

Другие расширения