次のような値を取得しようとしています
"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 つしかないため、 は必要ないことに注意してください。
一致する行を削除したい場合は、d
パターンスペースを削除するために次のように使用できます。
$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"