簡體   English   中英

Bash 循環遍歷不同目錄中的文件並打印輸出

[英]Bash looping over files in different directories and print output

我在/mypath/mydir/目錄中有*.vcf*.vcf.vcfidx*.vcf.idx文件。 我只想使用下面的命令(對於文件 1)遍歷.vcf文件:

一個vcf文件的命令:

vcf-subset -c sample.txt vcffile1.vcf | bgzip  -c > output_vcfile1.vcf_.vcf.gz

有人可以幫助循環所有 .vcf (不是vcf.vcfidxvcf.idx )文件並使用上面顯示的命令/get/inthis/dir/指定目錄/get/inthis/dir/每個文件的輸出嗎?

只需使用 glob 模式*.vcf

for i in *.vcf; do echo "$i"; done

glob 模式*.vcf將僅匹配以.vcf結尾的文件。

你的命令:

for i in *.vcf; do
    vcf-subset -c sample.txt "$i" | bgzip  -c > /get/inthis/dir/output_"$i"_.vcf.gz
done

如果您必須在特定目錄(例如/foo/bar/搜索.vcf文件,請執行以下操作:

for i in /foo/bar/*.vcf; do
    vcf-subset -c sample.txt "$i" | bgzip  -c > /get/inthis/dir/output_"${i##*/}"_.vcf.gz
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM