sed式に置き換える[閉じる]

sed式に置き換える[閉じる]

私は次の値を取得しようとしています。

"909,999"

次のようになります(例では何も置き換えません)。

sed 's/["][0-9]+[,][0-9]+["]//g'

しかし、これはうまくいきません。

答え1

パターンを変更するには、@Kusalanandaが提案したようにsed -E文字を使用またはエスケープできます。+

$ printf '"123.456"\n"909,999"\n"100"\n' | sed -E 's/"[0-9]+,[0-9]+"//g'
"123.456"

"100"

または

$ printf '"123.456"\n"909,999"\n"100"\n' | sed 's/"[0-9]\+,[0-9]\+"//g'
"123.456"

"100"

gこの例では、1行に1つの交換しかないため、これは必要ありません。


一致する行を削除するには、dパターン削除スペースを使用できます。

$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"

関連情報