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

Я пытаюсь изучить функциональные возможности awk, и в качестве простого упражнения я пытаюсь напечатать значения в файле, где, если первое слово равно PERMNO, оно должно вывести третье слово, иначе оно должно просто игнорироваться.

код, который я использую -

awk '{if ($1 = "PERMNO"){ print $3}}' ddoutput.txt 

Прямо сейчас это печатает третье слово из каждой строки. Но я ожидаю, что он напечатает только третье слово, когда первое слово строки - PERMNO. Чего мне не хватает?

1 Ответ

3 голосов
/ 07 июня 2019

С помощью $1 = "PERMNO" вы присваиваете PERMNO первому полю, которое всегда имеет значение true.Вы должны использовать оператор ==, например:

awk '{if($1=="PERMNO"){print $3}}' file

или более:

awk '$1=="PERMNO"{print $3}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...