首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Awk搜索包含空格的字符串

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

Stack Overflow用户
提问于 2012-02-24 02:04:56
回答 2查看 6.2K关注 0票数 2

我在使用awk搜索文件中字符串的最后一个匹配项时遇到了问题。我将一个字符串传递给脚本示例“对主机名执行Ping操作失败”。我一直收到awk:^未终止的字符串。#!/bin/sh

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-24 02:07:13

awk字符串两边使用单引号的目的是将所有内容都放在第一个参数中(并防止shell替换)。您可以更灵活地将该参数组合为

代码语言:javascript
复制
awk  "/$args/"' {f=$0} END{print f}' $TMP_FILE > data.out
票数 4
EN

Stack Overflow用户

发布于 2012-02-24 02:56:10

与其玩报价游戏,不如使用-v选项将外壳变量传递给awk

代码语言:javascript
复制
awk -v pattern="$*" 'match($0, pattern) {f=$0} END {print f}'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9418617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档