我有下一个命令:
awk -v M="$variable" -v B=$"version"-v R="Pass ok" -v K="1" 'BEGIN {FS=","; OFS=","} $1==M {$14=R} {$3=B} {$23=K} {print}' file1.csv > file2.csv
并且我不知道为什么我得到的输出与我希望的不同,参数(R="Pass ok")
打印在文件的几行中,如参数(K="1")
,请帮我这个
备注:
我在这样运行的脚本中有这个命令:
./myscript.sh
变量
答案 0 :(得分:1)
我不知道为什么我得到的输出不同于我希望
因为您在一行上写下了所有内容,并且您忘记了哪种模式适用于哪种操作。试试这个:
awk -v M="$variable" -v B="$version"-v R="Pass ok" -v K=1 '
BEGIN { FS=","; OFS="," }
$1 == M { $14 = R; $3 = B; $23 = K; print }
$1 != M
' file1.csv > file2.csv