Я хочу удалить команду из моего проекта 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
Как я могу перемещать все файлы и удалять эту строку? Благодарю.
Вы можете комбинировать 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 {} \;