如何提取不带扩展名的文件名并使用提取的名称更改同一文件中的标头?

时间:2019-02-27 06:40:44

标签: linux bash

我大约有30个VCF文件,文件名为ID_001.new.vcf。我只想从文件名中提取“ ID_001”部分,并在给出“ Sample1”的VCF文件的标题行中进行更改:

  

#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Sample1

结果将如下所示:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  ID_001

我该怎么办?

我尝试在bash中使用echo并从文件名中提取ID,但是我无法对其进行迭代以更改文件中的ID。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

for file in *.vcf 
do 
   name=$(basename -- "$file" .new.vcf) 
   sed -i "s/Sample1/$name/g" "$file" 
done