替换包含字符串的行,但如果是逗号

时间:2018-05-09 20:30:19

标签: linux sed

我想对包含TEXT的行进行字符串替换,并在的末尾留下,符号,如果那么。

示例:

我想将"value": 5,替换为"new-value": 0,

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

我目前有这个:

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

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

1 个答案:

答案 0 :(得分:1)

sed -i 's/."cost":.\(,\)\?$/ "cost": 0\1/' $FILE_NAME

请注意,这仅适用于单位数的费用值。

虽然你可以使用

sed -i 's/."cost":[0-9]\+\(,\)\?$/ "cost": 0\1/' $FILE_NAME

处理任意数量的数字。