将变量传递给grep命令

时间:2013-10-29 21:57:56

标签: linux bash grep

我想在Linux bash脚本中的grep命令中传递一个变量。变量是来自Internet的文本文件,我想在其中找到一些单词。

我在bash中尝试了以下命令:

  1. cat "$var" | grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)'
  2. echo "$var" | grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)'
  3. grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)' <<< "$var"
  4. 但我没有得到正确的结果。 我该怎么办?

    这是我的bash:

    #!/bin/sh    
    urltext=$(curl -s https://example.com)
    string=$(grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)' "$urltext" | tr '.' '\n' )
    cat $string
    

1 个答案:

答案 0 :(得分:0)

变量中应该包含什么?

这是一个档案?

grep <options> <expression> "$var"

这是一个字符串?

echo "$var"|grep <options> <expression>
grep <options> <expression> <(echo "$var")

注意:如果$ var

中有多行,请尝试-e选项