如何使用AWK

时间:2020-10-03 22:28:23

标签: awk

我有一个csv,对于csv中的每一行,我需要添加新列。列之一是时间戳,它似乎正在中断操作。

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

我使用了How to add new column with header to csv with awk 供参考。

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

我对使用bash还是很陌生,我正在努力弄清楚这一点。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

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"

始终用引号括住您的shell变量,对于未导出的shell变量名称,请不要全部使用大写字母。

相关问题