awk:根据另一列的值打印一列或另一列
awk: print one column or another depending on the value of another column
awk 的输入有多个列。
我想根据列 $z 的值打印列 $x 或列 $y。
例如:
输入是
3 2 1
4 5 6
如果第三列为 1,我想打印第一列,否则打印第二列。
输出应该是
3
5
首先是一些测试数据:
$ cat > file
1 2 2
1 2 1
使用条件运算符:
$ awk '{print (==1?:)}' file
2
1
如果第三个字段的值为1,则输出第一个字段的值,否则输出第二个字段的值。
在模式中使用 if-else 语句
awk '{if( == 1) {x = 1} else {x = 2}; {print $x}}'
awk 的输入有多个列。 我想根据列 $z 的值打印列 $x 或列 $y。
例如: 输入是
3 2 1
4 5 6
如果第三列为 1,我想打印第一列,否则打印第二列。
输出应该是
3
5
首先是一些测试数据:
$ cat > file
1 2 2
1 2 1
使用条件运算符:
$ awk '{print (==1?:)}' file
2
1
如果第三个字段的值为1,则输出第一个字段的值,否则输出第二个字段的值。
在模式中使用 if-else 语句
awk '{if( == 1) {x = 1} else {x = 2}; {print $x}}'