如何在Bash中创建一个循环来搜索一组.gz文件

时间:2016-10-06 04:07:00

标签: bash

我正在开发OS X El Capitan V10.11.3。

我能够获得使用测试文件的语法,但是很难在一组.gz文件上使用它。

处理测试文件:

#!/bin/bash
while read p; do
  grep $p test2.txt>> final.txt
done <test3.txt

我正在尝试使用“test3.txt”文件中的SNP列表编写一个循环来搜索超过30个.gz文件。

#!/bin/bash
while read p; do
 grep $p zcat chunk?-chr*.imputed.info.gz >> Final.txt
done <test3.txt

test3.txt文件有1个SNP,在.gz文件中表示。当我运行上面的语法时,它会创建一个文件proxy_imputed.txt,但不会拉出SNP。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我在同一个平台上,但无法使你的语法工作 - 这似乎达到了预期的结果(称之为findString.sh):

#!/bin/bash

while read p ; do
  gzcat *.gz | grep $p >> Final.txt;
done

运行时如下:

./findString.sh < test3.txt

不确定我是否在正确的轨道上,但似乎有效。注意我必须使用gzcat来读取gzip文件,zcat正在寻找* .Z