将变量传递给grep命令

2 人关注

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

我已经在我的bash中尝试了以下命令。

  • cat "$var" | grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)'
  • echo "$var" | grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)'
  • grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)' <<< "$var"
  • 但我没有得到一个正确的结果。 我怎样才能做到这一点呢?

    这是我的狂欢节。

    #!/bin/sh    
    urltext=$(curl -s https://example.com)
    string=$(grep -Po '(?<=\d[a-zA-Z]).*\..*(?=[a-zA-Z]\d)' "$urltext" | tr '.' '\n' )
    cat $string
        
    2 个评论
    编辑你的问题,包括像 var="my text string" 这样的内容。或 var=aFileName.txt 。你明白 echo cat 之间的区别吗?祝你好运。
    替换代码0】的价值是什么,你期望 grep 如何使用它的价值(即,预期产出是什么)?
    linux
    bash
    grep
    MSK
    MSK
    发布于 2013-10-30
    1 个回答
    Idriss Neumann
    Idriss Neumann
    发布于 2013-10-30
    已采纳
    0 人赞同

    变量中应该包含什么?

    这是个文件 ?

    grep <options> <expression> "$var"
    

    这是一个字符串?