【问题标题】:Grepping for a sentence from inside a bash script从 bash 脚本中寻找一个句子
【发布时间】:2015-03-10 07:49:51
【问题描述】:

我有一个日志文件,我想使用 bash 脚本从中 grep 查找一些错误消息,但是我不太明白如何将句子传递给它,然后在 grep 调用中使用它。

$./grep_sentence_script.sh "Call to server failed"

grep_sentence.sh

#!/bin/sh
sentence=$1
`grep $sentence logfile.log`

谁能帮帮我。

【问题讨论】:

    标签: regex linux bash shell grep


    【解决方案1】:

    将变量放在双引号内。

    #!/bin/sh
    sentence=$1
    grep "$sentence" logfile.log
    

    【讨论】:

      【解决方案2】:

      这样就足够了:

      #!/bin/bash
      
      grep -iF "$1" logfile.log
      

      使用-F(固定字符串)选项很重要,以避免对$.等特殊元字符进行正则表达式解释。

      【讨论】:

      • $@ in grep -iF "$@" logfile.log 有点误导。 "$1" 更好?
      猜你喜欢
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多