eliminar el número de líneas duplicadas según la coincidencia antes de la primera coma

eliminar el número de líneas duplicadas según la coincidencia antes de la primera coma

Tengo un texto grande en el servidor Linux Centos 7 y me gustaría eliminar las líneas que coinciden antes de la primera coma.

Aporte:

112112112,00,00,00
110110,01,01,02
112112112,11,11,888
110110,99,88,8
410410,22,22,22

Producción:

410410,22,22,22

Respuesta1

Aquí hay un par de awksoluciones de dos pasos. El primer paso almacena la frecuencia del campo 1 en una matriz x. La segunda pasada imprime una línea si xinforma la frecuencia del campo 1 como 1

awk -F, 'first_pass{x[$1]++; next}; x[$1] == 1' first_pass=1 file first_pass=0 file

awk -F, 'BEGIN{while ((getline<ARGV[1]) > 0)x[$1]++}; x[$1] == 1' file

Respuesta2

GNU cortodatamash+sedcombinación:

datamash -sft',' -g1 count 1 <file | sed -n 's/,1$//p'

El primer proceso del proceso anterior contará la cantidad de elementos en cada grupo de los valores del primer campo (agrupados por -g1) agregando los recuentos resultantes como último campo.

información relacionada