English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux uniq 命令

Manual de comandos de Linux

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。

语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--ayuda][--versión][文件输入][输出文件]

参数

  • -co--count 在每列旁边显示该行重复出现的次数。

  • -do--repetido 仅显示重复出现的行列。

  • -f<栏位>o--skip-fields=<栏位> 忽略比较指定的栏位。

  • -s<字符位置>o--skip-chars=<字符位置> 忽略比较指定的字符。

  • -uo--único 仅显示出一次的行列。

  • -w<字符位置>o--check-chars=<字符位置> 指定要比较的字符。

  • --ayuda 显示帮助。

  • --versión 显示版本信息。

  • [文件输入] 指定已排序好的文本文件。如果不指定此项,则从标准输入读取数据;

  • [Archivo de salida] Especificar el archivo de salida. Si no se especifica esta opción, se mostrará el contenido en el dispositivo de salida estándar (-terminal).

Ejemplo en línea

El archivo testfile en la línea 2、3、5、6、7、9Para eliminar las líneas repetidas de líneas iguales, utilice el siguiente comando:

uniq testfile

El contenido original de testfile es:

$ cat testfile      #Contenido original  
test 30  
test 30  
test 30  
Hola 95  
Hola 95  
Hola 95  
Hola 95  
Linux 85  
Linux 85

Después de eliminar las líneas repetidas con el comando uniq, se obtiene el siguiente resultado:

$ uniq testfile      #Contenido después de eliminar las líneas repetidas  
test 30  
Hola 95  
Linux 85

Verificar el archivo y eliminar las líneas repetidas en el archivo, mostrando el número de veces que cada línea se repite en la cabeza de la línea. Utilice el siguiente comando:

uniq -c testfile

El resultado se muestra a continuación:

$ uniq -c testfile      #Contenido después de eliminar las líneas repetidas  
3 test 30             #El número anterior significa que la línea apareció3Veces  
4 Hola 95            #El número anterior significa que la línea apareció4Veces  
2 Linux 85            #El número anterior significa que la línea apareció2Veces

Cuando las líneas repetidas no están adyacentes, el comando uniq no es efectivo, es decir, si el contenido del archivo es el siguiente, el comando uniq no es efectivo:

$ cat testfile1      # Contenido original 
test 30  
Hola 95  
Linux 85 
test 30  
Hola 95  
Linux 85 
test 30  
Hola 95  
Linux 85

En este caso, podemos usar sort:

$ sort  testfile1 | uniq
Hola 95  
Linux 85 
test 30

Contar el número de veces que cada línea aparece en el archivo:

$ sort testfile1 | uniq -c
   3 Hola 95  
   3 Linux 85 
   3 test 30

Encontrar líneas repetidas en el archivo:

$ sort testfile1 | uniq -d
Hola 95  
Linux 85 
test 30

Manual de comandos de Linux