Awk регулярное выражение для строки точной длины, которая заканчивается на ":" - PullRequest
1 голос
/ 16 ноября 2010

Я просто не могу получить правильное регулярное выражение:

awk '$6 ~ /:${14}/ {print $6}' file

Мне нужно распечатать 6-е поле, если оно длиной 15 символов и заканчивается знаком ":".

Вотпример: oAFKq7XS001224:

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Вам нужно использовать --posix как:

awk --posix '{ if ($6 ~ /^.{14}:$/) print $6}' file

Команда в действии

С awk справочная страница:

Интервальные выражения только доступно, если - posix или - в командной строке указан повторный интервал .

1 голос
/ 16 ноября 2010

А как же:

awk '$6 ~ /^.{14}:$/ { print $6 } ' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...