0

次の正規表現があります:

egrep '(chr1 .*n70$|chr1 .*n70-)' results/files/forbidden_variants

これは一致します

chr1 n70
chr1 n70-n79
chr1 n70-n79-n83
chr1 n70-n79
chr1 n70-n79-s15-s16
chr1 n70
chr1 n70-n91
chr1 n70

n70 などの ID を何百万回も異なる値に置き換えているため、非常に遅くなります。

したがって、ORを取り除きたかったのです。私は書いた:

egrep '(chr1 .*n70[-\$])' results/files/forbidden_variants

しかし、このコマンドで行末を一致させていないため、機能していません。出力は次のようになります。

chr1 n70-n79
chr1 n70-n79-n83
chr1 n70-n79
chr1 n70-n79-s15-s16
chr1 n70-n91

ここで何が間違っていますか?:) ありがとうございました。

4

2 に答える 2

1

+ を現在の Regex に追加するだけです:

egrep '(chr1 n70[-\$]+)' results/files/forbidden_variants
于 2013-07-22T11:53:45.657 に答える
0

単純に使わないのはなぜですか

chr1 n70

ORを使用できます

chr1 n70($|-)

これは基本的に最初の式と同等ですが、最初の式では、一致する .* の必要性がわかりません。

于 2013-07-22T12:06:45.300 に答える