使用awk命令替换哈希符号



我有一个包含以下行的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"匹配,那么用该行上的"替换"#",然后打印该行。

最新更新