Meu arquivo tem 4 colunas numéricas. Abaixo testando se as colunas estão identificadas corretamente. tail -n +2
é remover o cabeçalho.
tail -n +2 file.txt | awk '{print $1,$2,$3,$4}' | head
41261311 41261568 2798880 2799128
-115939711 -115940021 2799541 2799827
-115939159 -115939706 2800137 2800685
-115939033 -115939106 2801113 2801186
-115938419 -115938978 2801191 2801726
-115937404 -115937535 2812511 2812642
-115937075 -115937323 2813756 2814011
-115910025 -115910146 2818095 2818198
-115909932 -115909986 2818205 2818262
-115909723 -115909789 2818703 2818768
Eu quero adicionar uma quinta coluna que é col4 menos col3.
tail -n +2 file.txt | awk '{print $1,$2,$3,$4,$4-$3}' | head
2481311 41261568 2798880 2799128
286939711 -115940021 2799541 2799827
548939159 -115939706 2800137 2800685
735939033 -115939106 2801113 2801186
535938419 -115938978 2801191 2801726
131937404 -115937535 2812511 2812642
255937075 -115937323 2813756 2814011
103910025 -115910146 2818095 2818198
575909932 -115909986 2818205 2818262
655909723 -115909789 2818703 2818768
Ele não adiciona a 5ª coluna e, em vez disso, faz algo estranho na primeira coluna.
Seu arquivo está terminando em (Windows)
CR LF
em vez de (Unix)LF
.O
CR
caractere move a linha para o início e então o valor da nova coluna calculada está sendo impresso sobre a primeira coluna.Use
dos2unix
, ou filtre o arquivo comtr -d '\r'
ou simplesmente use isto:remova o último
NR>12{exit}
para processar o arquivo inteiro.