2011-03-16 54 views
1

我試圖將awk搜索命令的匹配行傳遞給其他程序。我做這樣的事情awk - 打印匹配行時出現問題

tail -f file | awk 'tolower($0) ~ /debug|.*nfo/ {system("java -jar abc.jar $0")}'

但我無法匹配線傳遞到外部程序。

+0

你是什麼意思,你無法通過該行?你有錯誤嗎?如果是這樣,哪一個?另外,你試過這個:'... abc.jar \「$ 0 \」「'? – DarkDust 2011-03-16 10:33:45

+0

我正在做'代碼' 尾-f app.log | awk'tolower($ 0)〜/debug|.*nfo/{system(「echo $ 0」)}' 'code'但無法獲得打印的匹配行 – ihavprobs 2011-03-16 10:39:07

回答

4

IMO "java -jar abc.jar $0"這裏是一個問題;你必須連接這個字符串:

tail -f file | awk 'tolower($0) ~ /debug|.*nfo/ {system("java -jar abc.jar " $0)}' 
+0

嗨,當我嘗試通過匹配行作爲環境變量,那麼它不工作 tail -f file.log | awk'tolower($ 0)〜/debug|.*nfo/ {system(「java -jar -Dmsg = \」$ 0 \「Test.jar」)}' – ihavprobs 2011-03-16 11:12:51

+1

所以做到這一點:'tail -f file.log | awk'tolower($ 0)〜/debug|.*nfo/ {system(「java -jar -Dmsg = \」「$ 0」\「Test.jar」)}'' – 2011-03-16 11:43:10