Como anexar string com caracteres especiais a cada linha usando AWK

Oct 03 2020

Tenho um csv e, para cada linha do csv, preciso adicionar novas colunas. Uma das colunas é um carimbo de data / hora e parece estar interrompendo a operação.

Example:
col1,col2,col3
1,2,3
4,5,7

After
col1,col2,col3,col4,col5,col6
1,2,3,01-01-2020 01:01:01,name,class
4,5,7,01-01-2020 01:01:01,name,class

Eu usei Como adicionar nova coluna com cabeçalho ao csv com awk para referência.

ORIG_FILE='sample.csv'
NEW_FILE='new_sample.csv'
values="01-01-2020 01:01:01,name,class"
awk -v d=$values -F"," 'BEGIN {OFS = ","} {printf("%s%s",$0,FNR>1?d RS:"col4,col5,col6" RS)}' $ORIG_FILE > $NEW_FILE

Eu sou muito novo no uso do bash e estou tentando descobrir isso.

Qualquer ajuda muito apreciada.

Respostas

4 EdMorton Oct 04 2020 at 01:17
orig_file='sample.csv'
new_file='new_sample.csv'
values='01-01-2020 01:01:01,name,class'
awk -v d="$values" 'BEGIN{FS=OFS=","} { print $0, (NR>1 ? d : "col4,col5,col6") }' "$orig_file" > "$new_file"

Sempre cite suas variáveis ​​de shell e não use todas as letras maiúsculas para nomes de variáveis ​​de shell não exportados.