Добавьте двойную цитату в определенном месте словами, используя sed - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь убрать слова:

{"id":1, "name":Robert}, {"id":2, "name":"Skylar"}, {"id":3, "name":"Ben"}, {"id":4, "name":Anne}

стал иметь двойную кавычку для всех слов после "name":, как показано ниже:

{"id":1, "name":"Robert"}, {"id":2, "name":"Skylar"}, {"id":3, "name":"Ben"}, {"id":4, "name":"Anne"}

Как мне почистить это с помощью sed?

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019
sed 's/\("name":\)\([A-Za-z]\+\)/\1"\2"/g' file
  • \("name":\) (ERE: ("name":)) соответствует "name": и помещает его в группу захвата 1,
  • \([A-Za-z]\+\) (ERE: ([A-Za-z]+)) сопоставляет группу символов, состоящую из букв от A до Z и от a до z, и помещает ее в группу захвата 2,
  • \1 и \2 расширяются до содержимого групп захвата.
0 голосов
/ 17 апреля 2019

Если ваши данные в d файле, попробуйте gnu sed:

sed -E 's/("name":\s*)"?([^"}]+)"?\s*\}/\1"\2"\}/g' d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...