3

bashスクリプトを使用して、/*間にラップされているすべての行をファイルから削除する方法はありますか?*/

私はperconaを使用して、開発用データベースと本番用データベースの2つのデータベースを同期するSQLスクリプトを生成します。Perconaは適切にフォーマットされたSQLスクリプトを生成しますが、ファイルサイズを大きくするコメントでいっぱいです。したがって、アップロード操作を簡単にするために、不要なものをすべて削除したいと思います。

1月10日に編集

私はこのコードで解決しました:

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

皆さんありがとう

4

2 に答える 2

6

使用sed

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

このコマンドdは、前の式に一致するパターンを削除するようにsedに指示します。最初の式/\/\*.*\*\//は1行のコメントに一致し、2番目の式/\/\*/,/\*\//は複数行の範囲のコメントに一致します(これはによって示されます,)。

これが100%機能するかどうかはわかりませんが、私が試した限りでは、それでうまくいきました。

于 2013-01-09T10:23:33.033 に答える
0

-このスクリプトを試してください-C++と同じであるため、コメントの削除に役立つはずです。ここでは、HTMLコメントを削除する別のsedの例を見ることができます。

于 2013-01-09T09:41:38.267 に答える