我正在尝试将值插入到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
答案 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
将其插入第二行,依此类推。