Ubuntu gawk 复制第一行而不做修改

Ubuntu gawk 复制第一行而不做修改

我有以下脚本来向 CSV 文件添加一些附加值。

文件中的第一行是标题,因此显然我们想保留它们,但我的脚本完全跳过它们。

简而言之,我想将所有内容复制到最终文件,但仅在第一行之后进行修改。

gawk -v exists="false" -v app_name="app_name" -v find_date=$(date +%F) -F"[ \t]+" 'BEGIN {OFS = "\t"} NR>1 {$12=exists;$13=app_name;$14=find_date; print}' output.csv > output_final.csv

答案1

该脚本会跳过第一行,因为您告诉它仅适用于 where 行NR>1。您需要指定何时做什么NR==1

gawk -v exists="false" -v app_name="app_name" -v find_date=$(date +%F) -F"[ \t]+" '
   BEGIN {OFS = "\t"}
   NR==1 {print}
   NR>1 {$12=exists;$13=app_name;$14=find_date; print}
' output.csv > output_final.csv

相关内容