合并这些文件

合并这些文件

文件夹中有一组匹配的文件,每对文件的名称都是这样的,带有一个基本名称,例如

LP6005334-DNA_H01_vs_LP6005333-DNA_H01.passed.somatic.indels.vcf.parsed.txt

LP6005334-DNA_H01_vs_LP6005333-DNA_H01.passed.somatic.indels.vcf_fixed_vcf.txt.hg19_multianno.txt

我如何columns 5th and 6thpassed.somatic.indels.vcf.parsed文件名中提取并将这些列附加到匹配的文件(passed.somatic.indels.vcf_fixed_vcf.txt.hg19_multianno)返回输出。TXT基名LP6005334-DNA_H01_vs_LP6005333-DNA_H01

为了切割我做的柱子

[

fi1d18@cyan01 folder]$ for f in *.passed.somatic.indels.vcf.parsed.txt; do awk '{print $5,$6}' $f > $out
> done;
-bash: $out: ambiguous redirect

此后,我不知道如何找到匹配的查找并将剪切的列附加到该查找

这是这些文件的链接

https://www.dropbox.com/s/y4jx1rznswqz6dq/LP6008460-DNA_G03_vs_LP6008340-DNA_C05__pv.1.7__rg.grch37_g1k__al.bwa_mem__.passed.somatic.indels.vcf_fixed_vcf.txt.hg19_multianno.txt?dl=0

答案1

这取决于你的文件是如何分隔的,但你应该能够使用类似

for f in *.vcf.parsed.txt; do 
  cut -f3,4 "$f" | paste "${f%.parsed.txt}_fixed_vcf.txt.hg19_multianno.txt" - > "${f%%.*}.txt"
done

扩展${f%.parsed.txt}${f%%.*}分别从循环文件名中删除最短和最长的“点后缀”。


对于文件对

LP6008336-DNA_H02_vs_LP6008333-DNA_H02.snp.pass.txt                     
LP6008336-DNA_H02_vs_LP6008333-DNA_H02.snp.pass.txt.hg19_multianno.txt

哪个符合原始问题中的命名约定,您需要相应地更改模式匹配

前任。

for f in *.pass.txt; do
    cut -f60,61 "$f" | paste "$f.hg19_multianno.txt" - > "${f%%.*}.txt"; 
done

相关内容