【问题标题】:How to grep such that you search only in a list of files如何 grep 以便您仅在文件列表中搜索
【发布时间】:2014-01-07 07:48:07
【问题描述】:

我在一个名为 scripts.txt 的文件中有一个文件列表

我只想在 scripts.txt 中包含的文件中 grep 查找“runco​​b”。我不想在scripts.txt中不包含的其他文件中grep。我该怎么做。请帮忙。如果我们需要一个脚本,我打算使用 ksh

【问题讨论】:

    标签: bash grep ksh


    【解决方案1】:

    这就是为什么我们有xargs

    xargs grep 'runcob' <scripts.txt
    

    【讨论】:

      【解决方案2】:

      遍历文件列表和grep:

      while read -r file; do
        grep runcob "${file}"
      done < scripts.txt
      

      【讨论】:

      • command &lt; file 执行command 并以file 作为输入。您可能还想参考redirection
      • 这是ksh吗?以及如何将 runco​​b 的输出重定向到文件
      • @Programmer 是的,这可以在 ksh 中使用。要将输出重定向到文件,请在scripts.txt 之后添加&gt; outputfile
      • 不,grep 的第一个参数是正则表达式;在这种情况下,文字字符串“runco​​b”。 (不需要引用不包含任何 shell 元字符的字符串,尽管将它放在引号中是一种很好的形式。)
      【解决方案3】:

      如果文件名不包含任何空格,它可以很简单

      grep runcob $(cat scripts.txt)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 2010-10-25
        相关资源
        最近更新 更多