【问题标题】:Specific string search特定字符串搜索
【发布时间】:2013-11-02 06:09:04
【问题描述】:

我正在寻找一种简单的方法来搜索文档中非常具体的字符串。 例如我只想搜索文件中的 /var,但搜索不应输出任何包含其他子文件夹或其他单词组合的结果。通常 'grep -w' 有帮助,但这次不行

# grep -w /var newfile
/var
/var/tmp
/var/junk
/var iety
/var-nation
# grep -w var newfile
/var
/var/tmp
/var/junk
/var iety
/var-nation

但我只想找到 '/var' 所以结果应该是这样的

# {command/script} /var newfile
/var

注意:如果它是一个简单的命令,我真的很喜欢它(几行 od 编码也可以)并且它应该在 UNIX 上的 bash 中工作

【问题讨论】:

  • 你能不能假设它会被空格包围,例如“ /var ” 或假设它将有一个新行,例如“/var\n”?
  • @Nathan,是的,每个字符串都需要整体搜索,因此“/var”将有新行“/var\n”
  • @Genocide,我该如何使用 sed 来做到这一点...???我不知道它可以用于这样的“字符串”搜索

标签: string bash unix search grep


【解决方案1】:

使用^$ 将表达式锚定到每行的开头和结尾:

grep '^/var$' newfile

【讨论】:

  • 非常感谢您的快速回复... :) !
  • 我现在手头有一个不同的问题。如果我有带空格的字符串而不是简单的字符串,并且我必须在执行搜索之前将其放入变量中,会发生什么情况。如何使其与带空格的变量一起使用?
【解决方案2】:

你可以用awk做同样的事情

awk '/^\/var$/' newfile

【讨论】:

  • 我现在手头有一个不同的问题。如果我有带空格的字符串而不是简单的字符串,并且我必须在执行搜索之前将其放入变量中,会发生什么情况。如何使其与带空格的变量一起使用?
  • var="some with space" 然后搜索这个,执行:awk '$0~t' t="$var" file
  • 我想,我之前的问题还不够清楚......但那可以回答:)!。我想知道如何使用你的 awk 方法进行选择性搜索,如果模式/变量中有空格?
  • 如果您输入awk '/pattern with space/',它会在此模式之后搜索有空格的整行。
猜你喜欢
  • 2017-09-18
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2018-11-24
  • 2018-10-18
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多