パス内のファイルの一括改名中に問題が発生しました。ランダムに指定されたファイルのパス名を知らずに一括して名前を変更
ここに私の問題があります: 私は約16000以上のファイル(すべての画像がありますが、.psd、.jpg、.ai、.pngなど)が非常に乱雑な方法で散在しています。しかしファイル名は、ありがたいことにすべてがユニークですが、純粋な量のために、私は確信しています(つまり、abc.aiまたは同等の名前のファイルが2つありますが、多くはありません)。私はパスを知ることができません。提供されたcsvには元のファイル名だけが含まれていて、名前を変更する必要があるからです。
基本的には、CSVファイルの最初の行のようなものです:
qwerty.jpg、asdfg.jpg
または
123-asd_qwe.ai、abcfgd。 ai。
私はいくつかの解決策を試しました。いくつかのスクリプト、何か私は本当にやってみることができるもの。
私は本当に命題やアイデア、あるいは解決策を聞きたいです!注意することは
:私が試した::
sed 's/"//g' names.csv | while IFS=, read orig new; do echo mv "$orig" "$new"; done
と
sed 's/^/mv -i -v "/;s/, /" "/;s/$/";/' < names.csv | bash -
と
#!/bin/bash
while read line
do
OldImageName=${line%,*}
NewImageName=${line#*,}
mv "$OldImageName" "$NewImageName"
done <"names.csv"
すべての二重引用符をsedコマンドで置き換えないのはなぜですか?ファイル内に引用符はありません。 – 123
私は試していました。ちょうど巨大なcsvファイルにこれらのファイルが含まれているとします。 – frosty