Удалить блок-комментарии из файла с помощью 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.

Другие вопросы по тегам