2015-12-02 3 views
0

У меня есть файл с рисунком ниже. Я хочу заменить все вхождения, начиная с «id» и заканчивая первым возникновением, с пустой строкой в ​​редакторе vi «id»: 797979,Как заменить пустую строку между двумя шаблонами

+0

Честно говоря, это может быть проще сделать с sed: 'sed -is/\ 'id. * \, // g filename'. Сначала проверьте регулярное выражение на копии файла, так как у меня его нет. – Munir

+0

Я попробовал вашу рекомендуемую команду, но это удаляет текст после, до конца строки. Я хочу удалить текст до, а не текст. –

+0

say У меня есть строка в моем файле {"element1": "value", "id": 0, "rlrmr": "sdfs", "element2": "sdfaf"} , когда я выполняю команду sed -is/"id. * \, // g filename", после чего он также создает пустой текст. {"element1": "value", –

ответ

0

Протестировано это sed на образце, представленном в комментариях, и оно работает так долго так как шаблон "id:xyz, появляется только один раз на линию.

sed -i 's/\(.*\)\("id.*,\)\(.*\)/\1\3/' filename 
1

с СЭД

sed 's/"id"[^,]*,//g' 

вы должны следить за жадного матча, когда есть больше чем одна запятая на линии (некоторые другие ответы выше не делали)

Смежные вопросы