Eu tenho um arquivo com duas colunas, como mostrado abaixo (exemplo):
ARQUIVO 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Preciso formatar isso e minha saída esperada deve ser:
ARQUIVO 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Michael Rod 3
são 2 colunas e não 3?Respostas:
Se a entrada tivesse sido apenas duas colunas, eu teria sugerido o uso
column -t
. Porém, isso não funciona aqui, pois ocolumn
utilitário tratará qualquer número de espaços ou guias como delimitadores de coluna:"Michael Rod" é duas colunas, de modo que uma única linha tem uma coluna a mais que as outras linhas, o que atrapalha a saída.
Podemos contornar isso, inserindo um caractere de tabulação antes da última coluna e, em seguida, vamos
column
usar (apenas) isso como um delimitador:No Awk,
NF
é o número de campos (colunas) e$NF
os dados no último campo. O script que estou usando simplesmente modifica os dados do último campo, acrescentando um caractere de tabulação antes de imprimir a linha completa.Se seu shell não entender
$'\t'
, você poderá escolher outro caractere que não faça parte dos dados:fonte