2016-12-13 1 views
0

awk 실행에서 사용자 입력 값을 비교하는 스크립트를 작성하는 데 도움이 필요합니다. 예 : 사전에 cat employee.txt 100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Sanjay Sysadmin Technology $7,000 400 Nisha Manager Marketing $9,500 500 Randy DBA Technology $6,000 EMPLOYERS=$(awk -F" " '{ print $2}' employee.txt) echo "Enter the name of an employer: \c" read employer If/for/while employer is part of EMPLOYERS, echo a message.awk 패턴 일치 - awk 값을 입력 값과 비교하십시오.

감사

답변

1

나는 할 것이다 그것을 간단 :

echo "Enter the name of an employer: \c" 
read employer 
if [[ $(awk -F" " '{ print $2}' employee.txt | grep $employer) = $employer ]] 
then 
    echo Found 
fi 
+0

빨리! 나는 그것이 쉽지 않은지 몰랐다. 내가 awk '{$ 1 ~/$ employer /}'를 사용하여 할려고했지만 아무것도 반환하지 않습니다. 그러나 $ employer를 실제 고용주 이름으로 바꾸면 이름이 있으면이를 반환합니다. 너 내가 뭘 잘못하고 있는지 말해 줄 수 있니? – user3112318

+0

편집 : 작동하지 않습니다. 잘못된 이름이 입력되면 "found"라고 표시됩니다. 죄송합니다. 나는 너무 흥분했다 – user3112318

+0

당신은 무엇을 했습니까? 제발 잘못 입력 해주세요. – GMichael

2

하거나

... 
awk -v emp=$employer '$2==emp{print "found"}' employee.txt 

-v 플래그가 awk 변수를 정의하기 위해, 여기 쉘을 전달하는 것입니다 가치.

+0

awk -v는 무엇입니까? 나는 구글에 대한 모범을 찾을 수 없다. – user3112318