如何根据其中哪一个与条件匹配,使awk打印2个不同字段之一

时间:2019-05-23 08:39:22

标签: linux bash awk scripting

我在Linux中有一个ascii表,如下所示:

Oct  Dec  Hex  Char                   Oct  Dec  Hex  Char
-------------------------------------------------------------

056  46   2E   .                      156  110  6E   n

我想在awk中建立一个衬板,该衬板将第3个字段和第7个字段匹配到对应的十六进制字符,即“ 2E”。如果第三个字段匹配,则打印第四个字段,即“。”。否则,如果第7个字段与“ 2E”匹配,则打印相应的第8个字段。

我写了这样的东西:

man ascii | awk '$3 == "2E"{print $4};$7 == "2E"{print $8}'

输出:

  .

但是,只有在第三场比赛中,以上内容才有效。如果它发生在第7个字段中,则不打印任何内容。例如这种情况:

man ascii | awk '$3 == "6E"{print $4};$7 == "6E"{print $8}'

预期输出:

  n

我得到的输出:

   nothing

0 个答案:

没有答案