替换为 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本示例中不需要 ,因为每行只有一个替换。


如果要删除匹配行,可以使用d删除模式空间:

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

相关内容