正規表現を得ることができません。これを解決する必要がありますので、SOのウィザードに助けを求めてください!既知の単語と未知の整数との間の正規表現
を考える:
LOCUS NODE_96_length_17326_cov_8.76428_ID_1>17327 bp DNA linear
LOCUS NODE_97_length_17208_cov_6.56803_ID_1>17208 bp DNA linear
LOCUS NODE_98_length_17111_cov_6.60638_ID_1>17111 bp DNA linear
LOCUS NODE_99_length_17092_cov_6.7682_ID_19717092 bp DNA linear
LOCUS NODE_9_length_59921_cov_8.04963_ID_1759921 bp DNA linear
は私がNODE
の間の文字列と同じ文字列の末尾の数字の配列を置換する必要があります。数字の前にある文字(たとえば、1行目の17327
)は、>
または_
のように表示されます。ですから、基本的にはNODE
から最後の>
または_
までをすべて置き換えるか、不明な長さの複数桁の整数にマッチする必要があります。
私がこれまで管理したいベストました:
sed 's/\(NODE.*\)\(>|_\)/newstring/'
しかし、私は、これは動作しません知っています。
これを辛抱強くクリアするには、これが望ましい出力になります。
LOCUS newstring 17327 bp DNA linear
LOCUS newstring 17208 bp DNA linear
LOCUS newstring 17111 bp DNA linear
LOCUS newstring 19717092 bp DNA linear
LOCUS newstring 1759921 bp DNA linear
私が示唆しているのは、行の後ろにアンダースコアや角括弧が現れた場合に '。*'の代わりに '[^ [:blank:]] *'を使うことだけです。 –
ありがとう@glennjackman、非常に良い提案。 – anubhava
本当にありがとう、私は前に空白に出くわしたことはありませんでしたので、正確にこの場合正規表現を探していますか? –