我在使用 awk 搜索文件中最后一次出现的字符串时遇到问题。我将一个字符串传递给脚本示例“Ping 在主机名上失败”。我不断收到 awk: ^ 未终止的字符串。 #!/bin/sh
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
最佳答案
与其玩引用游戏,不如使用 -v
选项将 shell 变量传递给 awk
awk -v pattern="$*" 'match($0, pattern) {f=$0} END {print f}'
关于awk - 使用 Awk 搜索包含空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418617/