我想对包含 TEXT 的行进行字符串替换,并在末尾保留一个 ,
符号如果它在那里。
例子:
我想将 "value": 5,
替换为 "new-value": 0,
"value": 5
和 "new-value": 0
我目前有这个:
sed -i 's/.*"cost":.*,$/ "cost": 0/' $FILE_NAME
但是,它总是会从末尾删除 ,
。有什么建议吗?
最佳答案
sed -i 's/."cost":.\(,\)\?$/ "cost": 0\1/' $FILE_NAME
请注意,这仅适用于个位数的成本值。
虽然你可以使用
sed -i 's/."cost":[0-9]\+\(,\)\?$/ "cost": 0\1/' $FILE_NAME
处理任意数量的数字。
关于linux - 替换包含字符串的行,但如果是逗号则保留最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261553/