私は次の値を取得しようとしています。
"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"