awk + как выполнить ИЛИ действие в команде awk - PullRequest
0 голосов
/ 22 июля 2010

У меня есть следующий файл

your  Answer  = AA
your  Answer  = AB
your  Answer  = CD
your  Answer  = XY 
your  Answer  = DD

, чтобы проверить все ответы, я запускаю следующий awk

echo "your  Answer  = AA" |  awk '/= AA/{print " passed "}'
echo "your  Answer  = AA" |  awk '/= AB/{print " passed "}'
echo "your  Answer  = AA" |  awk '/= CD/{print " passed "}'
echo "your  Answer  = AA" |  awk '/= XY/{print " passed "}'
echo "your  Answer  = AA" |  awk '/= DD/{print " passed "}'

Мой вопрос: как сделать то же самое для одной команды awk, чтобы выполнить команду 5 awk?

Как

echo "ваш ответ = AA" | awk '/ = AA | AB | CD | XY | DD / {print "пройдено"}'

Ответы [ 3 ]

1 голос
/ 22 июля 2010

Вы близки: вам просто нужно поместить альтернативы в группу, чтобы всегда был знак равенства:

echo "your Answer = AA" | awk '/= (AA|AB|CD|XY|DD)/ {print " passed "}'
0 голосов
/ 22 июля 2010
or(echo "your  Answer  = AA",echo "your  Answer  = AA") | awk '/= AA/{print " passed "}'

Попробуйте что-то вроде этого.

0 голосов
/ 22 июля 2010
awk -F"=" '$2~/A[AB]|[CD]D|XY/{print "passed"}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...