我在没有解压缩的情况下计算目录中几个文件中的行,并将结果除以如下所示:
gunzip -c *.fastq.gz | echo $((`wc -l`/4))
一切看起来都不错,只是它给了我所有线的总数。我想打印每个文件的行。谁能帮忙。我正在使用Darwin(Mac OSX)。谢谢。
答案 0 :(得分:2)
只是把它变成一个小脚本?
#!/bin/bash
for i in *.fastq.gz
do
echo "$i" $(gunzip -c $i | echo `wc -l`/4 | bc -l)
done
如果你想要一个单行:
for i in *.fastq.gz; do echo "$i" $(gunzip -c $i | echo `wc -l`/4 | bc -l); done
答案 1 :(得分:1)
gzip
通常附带zcat
(可能gzcat
),基本上是gzip -dc
。因此,此调用应适用于单个文件:
echo $(( $(zcat file.gz | wc -l) / 4 ))
如果由于某种原因你没有zcat
,gzip -dc
就可以正常使用。
在for
循环中包装它以处理不同的文件应该相对简单......