使用 awk 搜索有空格的字符串

mig*_*913 2 awk

我在使用 awk 搜索文件中最后一次出现的字符串时遇到问题。我正在向脚本示例“Ping has failed on hostname”传递一个字符串。我不断收到 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
Run Code Online (Sandbox Code Playgroud)

gle*_*man 5

与其玩引用游戏,不如使用-v选项将 shell 变量传递给 awk

awk -v pattern="$*" 'match($0, pattern) {f=$0} END {print f}'
Run Code Online (Sandbox Code Playgroud)