【问题标题】:How to use grep -f only with variables as input like in echo "pattern" | grep -f - <<< $var?如何使用 grep -f 仅将变量作为输入,如 echo "pattern" | grep -f - <<< $var?
【发布时间】:2019-06-18 07:05:49
【问题描述】:

以下代码语法有效:

echo "pattern_list" | grep -f - "/path/to/file"

还有

grep -f "/path/to/pattern/file" <<< $variable_that_holds_file_content

但是 grep -f 是否可能仅适用于变量?

因为

echo "pattern_list" | grep -f - <<< $variable_that_holds_file_content

不工作。

你能告诉我怎么做吗?谢了!

【问题讨论】:

    标签: linux bash syntax grep


    【解决方案1】:

    这是一个解决方案(未经测试):

    grep -f <( echo "pattern_list"  )  <<< $variable_that_holds_file_content
    

    您的第三个表达式的问题是您告诉 grep 读取模式文件的标准输入(即 -f - )和标准输入上的文件内容。你不能两者都做。如果您将标准输入用于模式,则需要 grep 打开文件(它的参数)来解析内容(这就是您的第一个示例有效的原因)。或者您可以让 grep 打开包含模式的文件并解析来自标准输入的输入(这就是第二种情况有效的原因)。

    【讨论】:

    • 哇 - 非常快速的答案 - testet!非常感谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多