gawk NR и проблемы с матчем - PullRequest
       3

gawk NR и проблемы с матчем

3 голосов
/ 04 октября 2019

Мне нужно использовать регулярные выражения для анализа конкретных строк файла данных. Моя тестовая команда с соответствием работает, и моя тестовая команда для определенных номеров строк работает, но когда я соединяю их вместе, я не получаю вывод.

gawk 'NR==42 {print $0}' filename

выводит всю строку 42

gawk 'match($0, /([0-9]+)/, a) {print NR ":" a[1]}' filename

имеет много распечаток, но, в частности, имеет следующий вывод: 42: 137674 Итак, моя строка 42 имеет числовое совпадение

gawk 'NR==42 match($0, /([0-9]+)/, a) {print NR ":" a[1]}' filename

ничего не печатает, и я понятия не имеюпочему.

У меня есть обходной путь:

gawk 'match($0, /([0-9]+)/, a) {if (NR==42) print NR ":" a[1]}' filename

Но я считаю, что он менее производительный, поэтому хотел бы выяснить, почему другая команда не работает

РЕДАКТИРОВАТЬ: ответил, я полностью забыл о && между NR и матч

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