regex – sedを使ってドットに続く数字をマッチさせるには?

regex sed

私は、sedを使って、数字の後にすぐにドットが続くパターン(3., 355.など)をすべて空の文字列で代用しようとしています。そこで私は試してみます

sed 's/\d+\.//g' file.txt

でも、うまくいかない。なぜだろう?

  97  Mika H.  2012-12-01


ベストアンサー

sed は perl ではないので — sed の正規表現には \d の短縮形がありません

sed 's/[[:digit:]]\+\.//g'

sed 正規表現ドキュメント こちら

138  glenn jackman  2012-12-01


Two problems:

  1. sed\dをサポートしていません。[0-9][[:digit:]]を使ってください

  2. +は特別な意味を得るためにバックスラッシュをかけなければなりません。\+

82  choroba  2012-12-01


sed man ページは re_format man ページを参照しています。このページでは2つの区別をしています。(1) 時代遅れの正規表現と拡張された正規表現、(2) 拡張されていない正規表現と拡張された正規表現です。4つの組み合わせがすべて可能です。obsolete と extended の両方に対して sed がサポートされていますが、どちらの場合も non-enhanced のみがサポートされています。\d 演算子は拡張正規表現の特徴であり、したがって sed ではサポートされていません

4  Jonathan Pool  2017-06-26


タイトルとURLをコピーしました