¿Utilizando Unix (awk, sed, bash?) para truncar elementos en una columna por el cuarto guión bajo?
Tengo una serie de archivos que se ven así, la segunda y tercera columna son duplicados pero con miles de líneas.
Quiero tomar la tercera columna y truncarla para que se elimine todo en la cadena después e incluyendo _i, así:
Los números después de cada combinación de letras (DN, c, g, i, p) pueden ser cualquier cosa y también pueden ser de cualquier longitud, por lo que no puedo simplemente truncar a cierta longitud.
He intentado sed -i 's/_i.*//' file.txt
, pero esto elimina todo después de cada línea y no solo la columna de interés.
¡Muchas gracias!
davy.ai
Puedes utilizar el comando
awk
para lograr esto. Prueba el siguiente comando:awk '{gsub(/_[^_]+$/,"",$3)}1' archivo.txt
Esto reemplazará todo después del último guion bajo en la tercera columna con una cadena vacía. El
1
al final imprimirá las líneas modificadas.¡Espero que esto ayude!