【问题标题】:Find content of one file from another set of gz files in UNIX在 UNIX 中从另一组 gz 文件中查找一个文件的内容
【发布时间】:2022-01-06 09:07:03
【问题描述】:

我在 search_these.txt 文件中有一个包含 500 个 ID 的列表;和 300 个压缩数据文件,编号为 {}_of_300_search_in.gz。我想从 300 个数据文件中的每一个中提取 500 个 id 的数据到一个输出文件中。

我尝试了以下代码,但它会引发错误Usage: grep [OPTION]... PATTERN [FILE]...。我不确定我在这里做错了什么。

cat search_these.txt | while read line
do
    seq 1 300 | xargs -I '{}' bash -c 'zcat {}_of_300_search_in.gz | grep -w $line' >> output.txt
done

【问题讨论】:

    标签: file grep


    【解决方案1】:

    尝试grep -w -- "$line" 以避免$line 被解释为选项和参数。 -- 结束选项列表,当$line- 开头时,这是必需的。

    【讨论】:

      【解决方案2】:

      据我所知,您可以通过以下单个命令减少整个代码:

      zgrep -hf search_these.txt {1..300}_of_300_search_in.gz
      

      命令zgrep 是一个简单的包装器,类似于zcatgunzip 是文件并将它和所有随附的参数传递给grep。所以-h-f 的参数可以从man grep 中读取以了解它们的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        • 2013-01-12
        • 2017-06-22
        • 1970-01-01
        相关资源
        最近更新 更多