Simplemente cambie su comando awk a la columna que desea realizar para eliminar las líneas duplicadas basadas en (en su caso, la tercera columna):
awk '!seen[$3]++' filename
Este comando está diciendo awk
qué líneas imprimir. La variable $3
contiene todo el contenido de la columna 3 y los corchetes son de acceso a la matriz. Por lo tanto, para cada tercera columna de línea en el nombre de archivo, el nodo de la matriz nombrada seen
se incrementa y la línea se imprime si el contenido de ese nodo (columna3) no se estableció ( !
) previamente.
El awk
comando anterior funcionará si sus columnas en el archivo de entrada están delimitadas con ellas mismas space
o Tab
entre ellas, si las columnas están delimitadas con algo más, debe indicarle a awk con su -F
opción. Entonces, por ejemplo, si todas las columnas se delimitan con una coma ( ,
) y desea eliminar líneas de base en la -F','
opción de uso de la tercera columna .
awk -F',' '!seen[$3]++' filename
-u
solo eliminaría las líneas duplicadas , no las claves duplicadas ... pero me equivoco.