「#」または「chr1」で始まる行を抽出する方法

「#」または「chr1」で始まる行を抽出する方法

次のファイルがあります。

##Comment A
##Comment B
#Important header
chr1 content a
chr2 content b
chrX content x

#(##ではない)または「chr1」で始まる新しいファイルに3行と4行を抽出したいと思います。

#Important header
chr1 content a

~しようとする

grep "^[^##]"

ただし、これを行うと#が1つしかない行も除外されます。私はいつも2つのステップでこれを行うことができると思いますが、より良いソリューションが欲しいです!とても感謝しています。

ベストアンサー1

2つのパターンをORで結ぶのはどうですか?

$ grep '^#[^#]\|^chr1' file
#Important header
chr1 content a

または(-e形式でPOSIXで指定)

$ grep -e '^#[^#]' -e '^chr1' file
#Important header
chr1 content a

おすすめ記事