SED: почему замена не работает с $, чтобы указать конец строки - PullRequest
1 голос
/ 05 июля 2019

Я хотел удалить определенные комментарии '//' из заголовочного файла c, используя sed. Я не понимаю, почему размещение $ в конце не работает. Пожалуйста, предложите. Пожалуйста, смотрите код ниже.

sed -i -e 's,\\(^//\\)\\(#undef TEST_FIRMWARE$\\),\2,' ./XX_HEADER.h

Если я удаляю $ в конце, функция работает, но когда я помещаю $, это не так. Я хочу понять причину.

1 Ответ

0 голосов
/ 06 июля 2019

Я подозреваю, что начало и конец метасимволов находятся внутри групп захвата.Попробуйте:

sed -i -e 's,^\(//\)\(#undef TEST_FIRMWARE\)$,\2,' ./XX_HEADER.h

Моя версия sed, похоже, не заботится, но я знаю, что раньше сталкивался с подобным поведением, так что это может повлиять на вашу версию sed.

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