如何提取不带扩展名的文件名并使用提取的名称在同一文件中更改 header?
How to extract filename without extension and change header in the same file with the extracted name?
我有大约 30 个文件名为 ID_001.new.vcf
的 VCF 文件。我只想从文件名中提取 "ID_001" 部分,并在给出 "Sample1" 的 VCF 文件的 header 行中更改它:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Sample1
所以结果看起来像:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT ID_001
我该怎么做?
我尝试在 bash 中使用 echo
并从文件名中提取 ID,但我无法迭代它以在文件内部进行更改。
感谢您的帮助。
您可以使用以下内容:
for file in *.vcf
do
name=$(basename -- "$file" .new.vcf)
sed -i "s/Sample1/$name/g" "$file"
done
我有大约 30 个文件名为 ID_001.new.vcf
的 VCF 文件。我只想从文件名中提取 "ID_001" 部分,并在给出 "Sample1" 的 VCF 文件的 header 行中更改它:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Sample1
所以结果看起来像:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT ID_001
我该怎么做?
我尝试在 bash 中使用 echo
并从文件名中提取 ID,但我无法迭代它以在文件内部进行更改。
感谢您的帮助。
您可以使用以下内容:
for file in *.vcf
do
name=$(basename -- "$file" .new.vcf)
sed -i "s/Sample1/$name/g" "$file"
done