私はこのスクリプトを使用して自分のディレクトリ内のすべてのフォルダからファイルを取り出し、名前を希望の出力に変更しようとしています。ファイル名の前に
:ファイル名の後に Folder\actors\character\hair\haircurly1.dds
: haircurly1.dds
私は、アーカイブから抽出された別の名前で12,000以上のテクスチャで働いています。私の抽出プログラムには、各ファイル名のファイルを展開したフォルダへのパスが含まれていました。たとえば、抽出時にhaircurly1.dds
という名前のファイルの名前はFolder\actors\character\hair\haircurly1.dds
となりました。
cd ~/Desktop/MainFolder/Folder
find . -name '*\\*.dds' | awk -F\\ '{ print; print $NF; }'
このコードは、しかし、私は私ではなく、一度にすべてのファイルを変更することを1にしたい、私はすでに他のコードとのファイルの一部を変更したとして(バックスラッシュを含むで探していますすべてのテクスチャファイルを取得します12000+テクスチャファイル用のすべてのフォルダに固有のコードを書く必要があります)
私はプリントを使用しています。そしてそれは私にファイルパスを送信します。
./Folder\actors\character\hair\haircurly1.dds
私は印刷$NF;
を使用し、それは私にawkの区切りの後にテキストを送信します。
\
haircurly1.dds
私はすべてのファイル名を希望しますこのスクリプトはawkコマンドの$ NF出力に変更されます。誰でも私のスクリプトでファイル名を$NF
出力に変更する方法を知っていますか?
は
ファイル名の前後に明確な例を追加できますか? – 123
明快にするために編集しました。 ファイル名の前:Folder \ actors \ character \ hair \ haircurly1.dds ファイル名の後ろ:haircurly1.dds –
そしてそれらはすべてすぐ下のフォルダにありますか? * for \ i *を試してください; echo "$ i" "$ {i ## * \\}";済んだ?ファイル名が正しければ 'echo'を 'mv'に変更してください。 – 123