sed - удаляет запятую в конце одной строки, которая имеет заданный шаблон c - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь удалить запятую из указанной строки c, для которой задан c идентификатор / шаблон строки с использованием sed. т.е.

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

Я знаю, как удалить все символы до / после определенного c шаблона поиска, но я не уверен, как использовать шаблон поиска для идентификации указанного c и удалите только запятую в конце. Таким образом, конечной целью будет просто иметь следующую строку:

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

Идентификатор, который я использую, будет "selfLink"

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Вы можете просто использовать sed с адресом:

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

Если у вас есть GNU sed и вы хотите изменить файл с изменениями вместо вывода в стандартный вывод, добавьте флаг -i: sed -i '/"selfLink"/s/,$//' file.

1 голос
/ 16 апреля 2020

Вы можете использовать:

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

Флаг -i необходим для изменения файла на месте.

Шаблон захватывает идентификатор "selfLink" и все после него до запятой. Затем шаблон соответствует запятой в конце строки (,$). Шаблон замены \1 затем заменяет все совпадение захваченной группой.

...