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 awk
soluciones de dos pasos. El primer paso almacena la frecuencia del campo 1 en una matriz x
. La segunda pasada imprime una línea si x
informa 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
+sed
combinació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.