awk - 使用 Awk 搜索包含空格的字符串

标签 awk

我在使用 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/

相关文章:

bash - 使用sed将一些大写字符替换为小写字符

bash - 使用 sed (或类似的)删除重复模式之间的任何内容

linux - 计算列的中值,输出该值并说明是否为 "OK"或 "ERROR"(如果在可接受范围内或之外)

python - 用于从文件中选择单个 Python 函数的 Bash 脚本

xml - 如何在 Mac 上使用脚本更改 XML 属性的特定值

bash - 将 bash 变量传递给 awk

linux - 通过匹配文本替换下一个文件列值中的值列

bash - 使用 Shell 脚本在 "Custom Order"中重新排列文本文件的列

linux - 如何以正确的方式使用 awk 中的命令

macos - 将传统换行符转换为 Markdown 双倍行距换行符