単純な bash スクリプトを作成して、フォーマットが不十分な (xbmc によって検出されない) テレビ番組のファイル名を変更できるようにしようとしています。awk コマンドで出力したいものを出力できましたが、mv コマンドを組み込むことができるようにバッククォート (またはアクセント文字) に入れるとすぐにエラーになります。
私が作業している awk コマンドは次のとおりです (その上に、ディレクトリ内のすべてのファイルを通過する単純な for ループがあります)。
echo $i | awk -F" " '{print $1 "\\ -\\ S0" $3 "E" $5 ".avi"}'
しかし、それに mv コマンドを追加すると、
mv $i `echo $i | awk -F" " '{print $1 "\\ -\\ S0" $3 "E" $5 ".avi"}'`
次のエラーが発生します。
awk: warning: escape sequence `\ ' treated as plain ` '
私の知る限り、 mv コマンドが正しく機能するにはバックスラッシュが必要です。
ファイル名の入力形式は次のとおりです。
Showname Season 1 Episode 01 - Episode Title.avi
Show Name Season 1 Episode 01 - Episode Title.avi
なりたい
Showname - S01E01 - Episode Title.avi
Show Name - S01E01 - Episode Title.avi
エピソードのタイトルが含まれていることをあまり心配していません (すべての余分なフィールドを含める簡単な方法が見つかりませんでした。また、すべてのファイルを移動して名前を付けるために使用する別のプログラムを使用して、そこにタイトルを配置します) . いくつかの番組では、最初の名前に 2 つの単語が含まれているため (つまり番組名の可能性があります)、スクリプトを手動で調整して、さまざまなフィールドを操作できるようにする予定です。
「バッククォート」を使用したときにエラーが発生しないように、awk をファイル名で適切に動作させる方法について何か提案はありますか?