linux - 如何将文件列表传递给并行命令并执行下游命令,例如 samtools?

标签 linux shell bioinformatics

我有一个要排序和索引的文件列表,我在一个文本文件中列出了所有这些文件。

/run/media/punit/data1/GSE74246/tophat_output/CMP_SRR2753096/CMP_6792.bam
run/media/punit/data1/GSE74246/tophat_output/CMP_SRR2753104/CMP_7256.bam

上面的只是我要排序和索引的数据列表。

现在我想使用这个命令

 ls *.bam | parallel "samtools view -b -S {} | samtools sort - {.}; samtools index {.}.bam"

同时我也有文件

.bam
extension such as unmapped.bam which i dont want to sort and index

我如何排除那些“unmapped.bam”,但因为我的列表中没有那些 unmapped.bam 但我仍然想知道如果我使用并行那么它会采用那些排序和索引......

最佳答案

ls *.bam | grep -v unmapped | parallel ...

关于linux - 如何将文件列表传递给并行命令并执行下游命令,例如 samtools?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483891/

相关文章:

linux - 启用 linux 内核驱动程序 dev_dbg 调试消息

来自 shell 脚本的 Javascript

python - 比较第一个字典中的键与第二个字典中的值

r - 按列名排序数据框

linux - 将 grep 结果打印到 csv 文件

linux - grep : find patterns in text file

linux - 比格骨Linux : issues appending a line to a file

linux shell流重定向直接运行命令列表

linux - Linux 中的稳定排序

Python:多个共识序列