awk 跳过直到并包括模式的行
awk to skip lines up to and including pattern
我正在尝试使用 awk
跳过包括特定模式 /^#CHROM/
的所有行并开始处理下面的行。 awk
确实执行了,但目前 returns tab-delimited
file
中的所有行。谢谢 :).
文件
##INFO=<ID=ANN,Number=1,Type=Integer,Description="My custom annotation">
##source_20170530.1=vcf-annotate(r953) -d key=INFO,ID=ANN,Number=1,Type=Integer,Description=My custom annotation -c CHROM,FROM,TO,INFO/ANN
##INFO=<ID=,Number=A,Type=Float,Description="Variant quality">
#CHROM POS ID REF ALT
chr1 948846 . T TA NA NA
chr2 948852 . T TA NA NA
chr3 948888 . T TA NA NA
awk
awk -F'\t' -v OFS="\t" 'NR>/^#CHROM/ {print ,,,,,"ID=1","ID=2"}' file
期望输出
chr1 948846 . T TA ID1=NA ID2=NA
chr2 948852 . T TA ID1=NA ID2=NA
chr3 948888 . T TA ID1=NA ID2=NA
使用以下awk方法:
awk -v OFS="\t" '/^#CHROM/{ r=NR }r && NR>r{ ="ID=1"; ="ID=2"; print }' file
输出:
chr1 948846 . T TA ID=1NA ID=2NA
chr2 948852 . T TA ID=1NA ID=2NA
chr3 948888 . T TA ID=1NA ID=2NA
/^#CHROM/{ r=NR }
- 捕获 模式 行号
替代方法如下所示:
awk -v OFS="\t" '/^#CHROM/{ f=1; next }f{ ="ID=1"; ="ID=2"; print }' file
awk 'BEGIN{FS=OFS="\t"} f{print ,,,,,"ID1=","ID2="} /^#CHROM/{f=1}' file
请参阅 了解有关此和其他 awk 搜索习惯用法的详细信息。你的是该页面上 "b" 的变体。
我正在尝试使用 awk
跳过包括特定模式 /^#CHROM/
的所有行并开始处理下面的行。 awk
确实执行了,但目前 returns tab-delimited
file
中的所有行。谢谢 :).
文件
##INFO=<ID=ANN,Number=1,Type=Integer,Description="My custom annotation">
##source_20170530.1=vcf-annotate(r953) -d key=INFO,ID=ANN,Number=1,Type=Integer,Description=My custom annotation -c CHROM,FROM,TO,INFO/ANN
##INFO=<ID=,Number=A,Type=Float,Description="Variant quality">
#CHROM POS ID REF ALT
chr1 948846 . T TA NA NA
chr2 948852 . T TA NA NA
chr3 948888 . T TA NA NA
awk
awk -F'\t' -v OFS="\t" 'NR>/^#CHROM/ {print ,,,,,"ID=1","ID=2"}' file
期望输出
chr1 948846 . T TA ID1=NA ID2=NA
chr2 948852 . T TA ID1=NA ID2=NA
chr3 948888 . T TA ID1=NA ID2=NA
使用以下awk方法:
awk -v OFS="\t" '/^#CHROM/{ r=NR }r && NR>r{ ="ID=1"; ="ID=2"; print }' file
输出:
chr1 948846 . T TA ID=1NA ID=2NA
chr2 948852 . T TA ID=1NA ID=2NA
chr3 948888 . T TA ID=1NA ID=2NA
/^#CHROM/{ r=NR }
- 捕获 模式 行号
替代方法如下所示:
awk -v OFS="\t" '/^#CHROM/{ f=1; next }f{ ="ID=1"; ="ID=2"; print }' file
awk 'BEGIN{FS=OFS="\t"} f{print ,,,,,"ID1=","ID2="} /^#CHROM/{f=1}' file
请参阅 了解有关此和其他 awk 搜索习惯用法的详细信息。你的是该页面上 "b" 的变体。