替换包含字符串的行,但如果是逗号则保留最后一个字符

我想做一个字符串替换包含文本的线,并离开一个,在结束符号,如果它的存在。

例子:

我要替换"value": 5,"new-value": 0,

"value": 5"new-value": 0

我目前有这个:

sed -i 's/.*"cost":.*,$/    "cost": 0/' $FILE_NAME

但是,它将始终,从最后删除。有什么建议么?


开满天机
浏览 347回答 1
1回答

Smart猫小萌

sed -i 's/."cost":.\(,\)\?$/ "cost": 0\1/' $FILE_NAME请注意,这仅适用于单位成本值。虽然你可以使用sed -i 's/."cost":[0-9]\+\(,\)\?$/ "cost": 0\1/' $FILE_NAME处理任意数量的数字。
打开App,查看更多内容
随时随地看视频慕课网APP