3

sed для меня чуждо, если не сказать больше. Я хотел бы пройтись по дереву проекта C и закомментировать каждую строку, вызывающую функцию LogMsg() . Что-то, что могло бы достичь следующего:

foreach: line within *.c
  if: line contains "LogMsg"
    prepend "//"

Или так. Кроме того, я хотел бы посмотреть, смогу ли я добиться обратного, хотя я представляю, что это может быть более трудным.

Я чувствую, что sed - подходящий инструмент для этой работы, но я не эксперт в пакетном редактировании текстовых файлов. Любая помощь?

1 ответ1

7

Команда для использования:

 sed '/LogMsg/ s?^?//?' filename  new_filename

Он находит строки в имени файла, содержащем LogMsg, и заменяет в начале строки (^) двойную косую черту. Знак вопроса используется в качестве разделителя вместо обычного слеша, чтобы избежать путаницы с заменяемым текстом. Вывод перенаправляется в новую версию файла вместо стандартного вывода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .