Удалить регулярное выражение Java-файлx

1

Я хочу удалить команду из моего проекта java с sed во всех моих java файлах с помощью regex.

Строка, которую я пытаюсь удалить, начинается с Logger.log и заканчивается Logger.DEBUG. это выглядит примерно так:

Logger.log("this is an test", Logger.DEBUG);

Иногда этот журнал может быть очень (3 или 4 строки, поэтому мне нужно подумать и о том, как это сделать).

Мое текущее Regex:

/Logger.log(.*)[\n(*)](.*)Logger.DEBUG(.*);/g

Все мои java файлы доступны в 1 пакете.

Я пробовал команду SED без везения:

sed -r -i '/Logger.log(.*)[\n(*)](.*)Logger.DEBUG(.*);/g' *.java

Как я могу перемещать все файлы и удалять эту строку? Благодарю.

Теги:
batch-file

1 ответ

0

Вы можете комбинировать find и sed для достижения этого.

Чтобы найти все *.java файлы в папке (удалите -maxdepth 1 если вы хотите, чтобы суп был рекурсивным):

find . -maxdepth 1 -name "*.java"

Чтобы удалить строку:

sed -ri /^Logger\.log.*?Logger\.DEBUG\.*?\;/d

Комбинированный:

find . -maxdepth 1 -name "*.java" -exec sed -ri /^Logger\.log.*?Logger\.DEBUG\.*?\;/d {} \;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню