2010-02-13 5 views

Respuesta

10

tendrá que resolver primero sus datos si desea utilizar uniq

sort file | rev | uniq -f 10 | rev 
+0

uniq without sort elimina la línea idéntica consecutiva que definitivamente puede ser útil. –

+0

uh ... creo que esto supone que las líneas son todas de la misma longitud ... – Michael

9

rev $ filename | ordenar | uniq -f = N | rev

+1

cuidado de cualquier persona para llegar a un argumento de por qué este comportamiento no se incorpora en uniq como un modificador de línea de comando/opción? – Juliusz

+1

revertir antes de ordenar complica las cosas, ya que luego se ordenará por el contenido inverso de los campos que desea ignorar (y el contenido inverso del resto de sus líneas) ... 'ordenar archivo | rev | uniq -f = N | rev' como se indica en la respuesta aceptada es el camino a seguir. – trs

12

Si desea que la funcionalidad de clasificar primero y luego mantener una sola línea para cada combinación única de los campos está ordenando en adelante, puede arreglárselas solo con la utilidad Unix.

Como ejemplo, considere el siguiente archivo, llamado some_data

a;c;4 
a;b;9 
a;b;6 

Queremos para ordenar por el primer y segundo campo, y dejar el tercer campo solo, así que hacer una especie estable, como esto:

$ sort -k1,1 -k2,2 -t';' --stable some_data 

que da

a;b;9 
a;b;6 
a;c;4 

Ahora dicen que nos gustaría mantenga solo combinaciones únicas de la primera y segunda columna. A continuación, nos gustaría hacer esto:

$ sort -k1,1 -k2,2 -t';' --stable --unique some_data 

que da

a;b;9 
a;c;4 
+0

Esto es exactamente lo que quería, en realidad, ya que el género tiene un mejor control sobre lo que cuenta como campo que uniq. ¡Gracias! –

Cuestiones relacionadas