awk的输入有多列。 我想打印列$ x或列$ y,具体取决于列$ z的值。
例如: 输入是
3 2 1
4 5 6
如果第三列为1,我想打印第一列,否则打印第二列。
输出应为
3
5
答案 0 :(得分:3)
首先是一些测试数据:
$ cat > file
1 2 2
1 2 1
使用条件运算符:
$ awk '{print ($3==1?$1:$2)}' file
2
1
如果第三个字段的值为1,则输出第一个字段的值,否则输出第二个字段值。
答案 1 :(得分:0)
在模式中使用if-else语句
awk '{if($3 == 1) {x = 1} else {x = 2}; {print $x}}'