如何使用 'sed' 仅打印带有“1”的行

How to use 'sed' to print lines with '1' ONLY

我有一个文件,其中包含有关所有 23 对染色体 (CHROM) 的信息。我想将有关 1 号染色体的所有信息写入输出文件。因此,该行的第一个字符只能为“1”。

我如何使用 sed 或 (awk?) 来最好地做到这一点?

我在下面尝试了这个但是添加了行号以及其他杂项...

sed -e = '/^1/' input.vcf > output_CHROM1.vcf

示例文件:

##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1   69224   COSM3677745 A   C   .   .   COSMIC_71;TSA=SNV
2   69230   COSM3677746 A   C   .   .   COSMIC_71;TSA=SNV
23  69230   COSM3677746 A   C   .   .   COSMIC_71;TSA=SNV

使用 -n 不打印输入并将 p 添加到模式以打印匹配的行:

sed -n '/^1\b/p' input.vcf > output_CHROM1.vcf

grep 的一项简单且非常典型的任务:

grep '^1\b' input.vcf > output_CHROM1.vcf