2016-12-13 100 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

FAST !!!我不知道那很容易。我正在嘗試使用awk'{$ 1〜/ $ employer /}'),但它什麼都不返回。然而,用實際僱主名稱替換$僱主如果存在,則返回該名稱。你能告訴我我在那裏做錯了什麼嗎? – user3112318

+0

編輯:它不起作用。當輸入錯誤的名稱時,它會顯示「發現」。抱歉。我太興奮了 – user3112318

+0

你做了什麼?請給我你的錯誤的輸入。 – GMichael

2

或者乾脆

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

-v標誌定義awk變量,在這裏通過殼價值腳本。

+0

什麼是awk -v?我似乎無法在Google上找到任何示例。 – user3112318