如何以正确的方式使用来自awk的命令

时间:2015-05-29 02:54:22

标签: linux bash awk

我有下一个命令:

 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变量

1 个答案:

答案 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