2012-02-23 63 views
2

我在使用awk搜索文件中最後一次出現字符串時遇到問題。我將一個字符串傳遞給腳本示例「Ping在主機名上失敗」。我不斷收到awk:^未終止的字符串。 #!/ bin/sh的使用Awk搜索一個有空格的字符串

LOG=/opt/netcool/omnibus/log/mttrapd.log 
TMP_FILE=sitescope.$$ 
args="$*" 

#ruby sitescope.rb 

echo "looking for $1 " 

tail -1000 $LOG > $TMP_FILE 

echo "WORD = $args" 

awk '"/'$args'/" {f=$0} END{print f}' $TMP_FILE > data.out 

rm -f $TMP_FILE 

回答

2

周圍awk的字符串單引號的一點是要保持在第一個參數的一切(和防止外殼替代)。你可以多一點flexable隨你怎麼把這樣的說法在一起

awk "/$args/"' {f=$0} END{print f}' $TMP_FILE > data.out 
+0

謝謝你的快速響應!有用 ! – mig0913 2012-02-23 18:20:29

4

而不是玩引述遊戲,通過shell變量與-v選項awk的

awk -v pattern="$*" 'match($0, pattern) {f=$0} END {print f}' 
相關問題