Tengo un archivo con dos columnas como se muestra a continuación (ejemplo):
ARCHIVO 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Necesito formatear esto y mi salida esperada debería ser:
ARCHIVO 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Michael Rod 3
son 2 columnas y no 3?Respuestas:
Si la entrada hubiera sido solo dos columnas, habría sugerido usar
column -t
. Sin embargo, esto no funciona aquí, ya que lacolumn
utilidad tratará cualquier número de espacios o pestañas como delimitadores de columna:"Michael Rod" tiene dos columnas, de modo que una sola fila tiene una columna más que las otras filas, lo que desordena la salida.
Podemos solucionar esto insertando un carácter de tabulación antes de la última columna y luego dejemos
column
usar (solo) eso como delimitador:En Awk,
NF
es el número de campos (columnas) y$NF
son los datos en el último campo. El script que estoy usando simplemente modifica los datos del último campo al anteponer un carácter de tabulación, antes de imprimir la línea completa.Si su shell no comprende
$'\t'
, puede elegir otro personaje que no sea parte de los datos:fuente