我正在尝试获取一个值,例如
"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
本示例中不需要 ,因为每行只有一个替换。
如果要删除匹配行,可以使用d
删除模式空间:
$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"