如果我有以下格式的文件:
line1 column1
line2 columnA
line3 column1A
exclude this
line5 column2
line6 columnB
line7 column2B
我想交换列,所以column*
在line*
. 我使用这样的简单awk
命令:awk '{print $2 " " $1}'
并获得如下输出:
column1 line1
columnA line2
column1A line3
this exclude
column2 line1
columnB line2
column2B line3
现在我希望exclude
打印但不使用的行(不一定是第 3 行)。我可以使用这个命令来忽略这些行:awk '/exclude/{next}{print $2 " " $1}'
我得到一个没有排除行的输出:
column1 line1
columnA line2
column1A line3
column2 line1
columnB line2
column2B line3
如何告诉awk
打印那些包含exclude
但不使用列的行?所以我会得到这样的输出:
column1 line1
columnA line2
column1A line3
exclude this
column2 line1
columnB line2
column2B line3
就像是
或者,相同的结果,但更短一些。