在csv文件的第二行中插入值,与ksh脚本的第一行有关

时间:2018-08-29 09:48:24

标签: awk

我正在尝试将值插入到csv文件的第二行。首先,我将标头插入文件中:

echo 'FILE_TYPE,PERCENT_SPACE_USED,DB_NAME,THRESHOLD' > output.csv

第二,我想在每一列下插入值。我的前两个文件位于文本文件(output.txt)中,第3个和第4个位于变量中。

awk -F"," -v DB="ABCDE",THRESH="75" 'BEGIN{OFS=","} NR>2{$1=$1+DB+THRESH} {print $0}NR!=1' output.txt > output.csv

但是我得到的是我的标题被覆盖,文本文件的输出分为两行:

        ARCHIVED LOG        ,               .09                                                             
        ARCHIVED LOG        ,               .09  

下面是我的输入文件(output.txt的样子):

        ARCHIVED LOG        ,               .09  

2 个答案:

答案 0 :(得分:1)

如果您只是想在显示的输出之前添加标头之类的内容,那么下面的内容可能会对您有所帮助,这就是awk具有BEGIN部分的原因,我们可以在读取输入文件之前先做一些事情,例如->

awk 'BEGIN{print "FILE_TYPE,PERCENT_SPACE_USED,DB_NAME,THRESHOLD"} ...... your_code' Input_file

答案 1 :(得分:1)

您也可以将sed用于此目的,只需执行以下操作即可在文件顶部插入一行:

sed -i.bak '1s/^/\"FILE_TYPE,PERCENT_SPACE_USED,DB_NAME,THRESHOLD\"\n/g' file

这将在1s定义的文件顶部插入一行,2s将其插入第二行,依此类推。

相关问题