Eu tenho um arquivo CSV com algo como
10;12;33;44;55;66;77;88
1;2;3;4;5;6;7;8
110;112;133;144;155;616;771;818
...etc
Cada linha tem oito números separados por ;
.
Eu preciso adicionar um novo campo no início de cada linha, começando com 1184 e descendo, então o arquivo final será
1184;10;12;33;44;55;66;77;88
1183;1;2;3;4;5;6;7;8
1182;110;112;133;144;155;616;771;818
... etc
Como posso fazer isso com awk
ou algo que funcione no macOS?
Alternativamente, se você quiser definir
n
na linha de comando:Alternativamente, usando
print
em vez deprintf
:Alternativamente, deixando
awk
inserir o delimitador de campo entre o novo campo e o resto da linha:Como alternativa, modifique
;
apenas o primeiro campo delimitado e imprima o registro:Isso prefixaria cada linha existente com o número armazenado na variável
n
e, ao mesmo tempo, diminuiria essa variável. Os dados existentes na linha seriam transmitidos sem modificações.A saída é gravada
outfile
e dada os dados de exemplo na pergunta, isso se pareceria comOs dois nomes de arquivo
infile
eoutfile
precisam ser diferentes, ou você acabará esvaziando seu arquivo de dados de entrada e perdendo-o.