Удалить блок-комментарии из файла с помощью bash-скрипта
Есть способ удалить из файла все строки, заключенные между /*
а также */
используя скрипт bash?
Я использую percona для создания сценария sql для синхронизации двух баз данных, от разработки до производственной. Percona генерирует хорошо отформатированный SQL-скрипт, но полный комментариев, которые увеличивают размер файла. Поэтому, чтобы упростить загрузку, я бы предпочел удалить все ненужное.
РЕДАКТИРОВАТЬ 10 января
Я решил с этим кодом:
sed -r ':a; s%(.*)/\*.*\*/%\1%; ta; /\/\*/ !b; N; ba' <FILE_TO_CLEAN>
Спасибо всем
2 ответа
С помощью sed
:
sed '/\/\*.*\*\// d; /\/\*/,/\*\// d' file
Команда d
говорит sed удалить шаблоны, соответствующие предыдущему выражению. Первое выражение /\/\*.*\*\//
соответствует однострочным комментариям, второй /\/\*/,/\*\//
комментарии, которые охватывают несколько строк (это подразумевается ,
).
Я не знаю, работает ли это на 100%, но, насколько я пытался, это сработало.
-Попробуйте этот скрипт - он должен помочь удалить комментарии, так как они такие же, как C++. Здесь вы можете увидеть еще один пример sed для удаления комментариев HTML.