Как заставить awk распечатать одно из 2 разных полей, в зависимости от того, какое из них соответствует условию - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица ascii в Linux, которая выглядела бы так:

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

056  46   2E   .                      156  110  6E   n

Я хочу построить один вкладыш в awk, который бы соответствовал 3-му и 7-му полям соответствующему шестнадцатеричному символу, скажем "2E».Если 3-е поле совпадает, выведите 4-е поле, то есть «.».Иначе, если 7-е поле соответствует «2E», выведите соответствующее 8-е поле.

Я написал что-то вроде этого:

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

Вывод:

  .

Новышеописанное работает, только если совпадение происходит в 3-м поле.Если это происходит в 7-м поле, оно ничего не печатает.Например, для этого случая:

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

Ожидаемый вывод:

  n

Вывод, который я получаю:

   nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...