2010-07-22 8 views
0

나는 다음과 같은 파일을 가지고AWK + 수행 또는 행동 awk 명령에하는 방법

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 "}' 

내 질문 :에 동일한 작업을 수행하는 방법 5 awk 명령을 실행하려면 pleace에서 하나의 awk 명령을 사용 하시겠습니까?

Like

echo "your answer = AA"| AWK '/ = AA | AB가 | CD가 | XY가 | DD/{인쇄는 "통과"}'

답변

1

당신이 가까이있어 : 등호가 항상있다, 그래서 당신은 단지 그룹에 번갈아 넣어해야합니다

echo "your Answer = AA" | awk '/= (AA|AB|CD|XY|DD)/ {print " passed "}' 
0
awk -F"=" '$2~/A[AB]|[CD]D|XY/{print "passed"}' file 
+0

좋지 때문에 에코 "blabla = blabla의 AA"| awk -F "=" '$ 2 ~/A [AB] | [CD] D | XY/{print "passed"}'또한 통과되었습니다.이 경우 "="다음에 blabla AA가 아니라 조언을 해주시겠습니까? – lidia

+0

AA는 이제 필드 2 ($ 2)가 아니기 때문입니다. 성적이 온통 넘치면 $ 0을 사용하십시오. – ghostdog74

+0

좋지 않음 "echo"param1 param2 param3 = param1 AA "| awk -F"= " '$ 0 ~/AA | AB/{print"passed "}'또한 인쇄는 ?????????? – lidia

0
or(echo "your Answer = AA",echo "your Answer = AA") | awk '/= AA/{print " passed "}' 

같은 것을보십시오.

+0

여기서 OR 규칙은 이고 "="에서 AA 또는 AB 사이에 공백이있는 경우 – lidia

+0

sintax는 또는 (value1, value2) 이었지만 공백은 중요하지 않습니다. – Kex