0
awk的輸入具有多列。 我想根據列$ z的值打印列$ x或列$ y。awk:根據另一列的值打印一列或另一列
例如: 輸入是
3 2 1
4 5 6
我想打印第一列,如果第三列是1,否則輸出第二列中。
輸出應該是
3
5
awk的輸入具有多列。 我想根據列$ z的值打印列$ x或列$ y。awk:根據另一列的值打印一列或另一列
例如: 輸入是
3 2 1
4 5 6
我想打印第一列,如果第三列是1,否則輸出第二列中。
輸出應該是
3
5
首先一些測試數據:
$ cat > file
1 2 2
1 2 1
使用條件運算符:
$ awk '{print ($3==1?$1:$2)}' file
2
1
如果第三字段的值是1時,輸出的值第一場的值,否則第二場的值。
在模式使用if-else聲明
awk '{if($3 == 1) {x = 1} else {x = 2}; {print $x}}'
類似的問題[Q1](https://stackoverflow.com/questions/15160241/awk-print-columns-based-on-values-of-another - 列)和[q2](https://stackoverflow.com/questions/14739057/awk-print-column-3-if-2-a-specific-value)。但他們打印或不打印一列。我想根據條件打印不同的列。 –