2013-01-09 129 views
0

有一種方法使用bash腳本從文件中刪除包裹/**/之間的所有行刪除塊的意見?從文件有一個bash腳本

我用percona生成一個sql腳本來同步兩個數據庫,一個開發到一個生產。 Percona生成一個格式良好的SQL腳本,但充滿了增加文件大小的註釋。所以,爲了簡化上傳操作,我寧願刪除所有不必要的東西。

EDIT 1月10日

我這個代碼解決:

sed -r ':a; s%(.*)/\*.*\*/%\1%; ta; /\/\*/ !b; N; ba' <FILE_TO_CLEAN> 

感謝所有

回答

2

使用sed

sed '/\/\*.*\*\// d; /\/\*/,/\*\// d' file 

命令d告訴sed刪除模式匹配前述表達。第一個表達/\/\*.*\*\//匹配單行註釋,第二個/\/\*/,/\*\//註釋表示多行(這是暗示的,)。

我不知道,如果這個工程100%,但據我試過,它做的工作。

+0

這個命令只涉及以註釋開頭的行,或者即使註釋位於另一行的末尾也行得通! –

+0

我用完成解決問題的腳本重新編輯了問題。謝謝! –

0

-Try this script-應該有助於消除的意見,因爲是相同的C++ Here你可以看到另一SED例如刪除HTML註釋