Удалить последнюю точку с запятой совпадающей строки - PullRequest
0 голосов
/ 08 мая 2018

У меня есть файл с несколькими строками. Примерно так:

Session
PKG_TEST
Call: command(parameter);
Error: error message
end of log;
Session2
PKG_TEST2
Call: command2(parameter2);
Error: error message
end of log;

Мне нужно удалить точку с запятой в конце каждой строки, начинающейся с Call.

Я знаю, как найти каждую строку, начинающуюся с Call с /^Call.*/, но не могу сделать все в одной команде sed без удаления каждой точки с запятой в файле. Как я могу это сделать?

1 Ответ

0 голосов
/ 08 мая 2018

Чтобы выполнить подстановку только в строках, которые соответствуют шаблону, вы можете добавить подстановку к адресу:

sed '/^Call/s/;$//' infile

Это проверяет, соответствует ли ваша строка ^Call, и если да, то выполняет s/;$//, что удаляет завершающую точку с запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...