sed - 删除具有特定模式的单行末尾的逗号

sed - Remove comma at the end of a single line that has a specific pattern

我正在尝试使用 sed 从具有特定行 identifier/pattern 的特定行中删除逗号。即

"selfLink": "/apis/user.openshift.io/v1/groups/G-R-OUP",

我知道如何删除特定搜索模式中的所有字符 before/after,但我不确定如何使用搜索模式来识别特定行并只删除末尾的逗号。所以最终目标只是简单地让一行如下:

"selfLink": "/apis/user.openshift.io/v1/groups/G-R-OUP"

我使用的标识符是 "selfLink"

您可以使用:

sed -i 's/\(\"selfLink\".\+\),$//' myinputfile.txt

需要 -i 标记来修改文件。

该模式捕获标识符 "selfLink" 及其后的所有内容,直到逗号。然后,模式匹配行尾的逗号 (,$)。替换模式 然后用捕获的组替换整个匹配项。

您可以简单地将 sed 与地址一起使用:

sed '/"selfLink"/s/,$//' file

如果你有 GNU sed 并且想用更改来修改文件而不是转储到标准输出,请添加 -i 标志:sed -i '/"selfLink"/s/,$//' file.