1 つのディレクトリ内のファイルのバッチの名前を、ファイルの内容の最初の行のバッククォートの間の文字に変更する必要があります。
ファイル名: schema.stored.procedure302
ファイル
の最初の行は次のとおりです。
/* Procedure structure for procedure `usp_stored_procedure_abc` */
必要な新しいファイル名: usp_stored_procedure_abc.sql
シナリオをもう少し詳しく説明します。
mysqldump のストア プロシージャのみを含む単一の schema.sprocs.sql ファイルがあります。
csplit を使用して、ファイルを 300 以上の個別の SQL ファイルに分割しました
csplit -f schema.stored.procedure schema.sprocs.sql '/Procedure structure for procedure/' {*}
これは見事に機能し、今では次のようなファイルがあります。
schema.stored.procedure302
schema.stored.procedure303
schema.stored.procedure304
など...
私が助けを必要として
いるのは、各ファイルの内容を読み取り、パターンを見つけるために使用できるコマンドは次のとおりです。
/* Procedure structure for procedure `
次に、バッククォートが見つかるまで、そのパターンに従う文字でファイルの名前を変更します。
例えば:
ファイル schema.stored.procedure302 には、最初の行に次の行が含まれています。
/* Procedure structure for procedure `usp_stored_procedure_abc` */
そのファイルの名前を次のように変更する必要があります: usp_stored_procedure_abc.sql (ファイルの内容の最初の行のバックティック間の内容)。
私はこれが実現可能であると確信しています、誰かが私を助けることができますか?