如何使用'sed'打印只有'1'的行

时间:2015-04-17 19:54:44

标签: bash sed

我有一个文件,其中包含有关所有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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

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