我有一个包含以下行的file.vcf
。我想使用awk命令来替换我的文件中的#
(请注意单个#
(。
##contig=<ID=23,length=155698556>
##INFO=<ID=PR,Number=0,Type=Flag,Description="Provisional reference allele, may not be based on real reference genome">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
#CHROM POS ID REF ALT
我尝试了awk '/^#CHROM/{sub(/^#/,"")} 1' file.vcf
,但它生成了以下错误。我在这里错过了什么?
awk: cmd. line:1: /^#CHROM/{sub$(/^#/,"")} 1
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: /^#CHROM/{sub$(/^#/,"")} 1
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: /^#CHROM/{sub$(/^#/,"")} 1
awk: cmd. line:1: ^ invalid char '▒' in expression
我想要的结果:
##contig=<ID=23,length=155698556>
##INFO=<ID=PR,Number=0,Type=Flag,Description="Provisional reference allele, may not be based on real reference genome">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
CHROM POS ID REF ALT
awk '{ $1 ~ "#CHROM" sub("#", ""); print }' file.vcf
对我很有用。语法意味着,如果行($1(上的第一个单词与单词"#CHROM"匹配,那么用该行上的"替换"#",然后打印该行。