コマンドプロンプトの入力に基づいてフォルダのファイル名を変更するbashスクリプトがあります。
echo "Please rename and press enter" read rename
if [ -z "$rename" ]; then
printf "no caption was selected, aborting!\n"
exit 1
fi
printf "rename is $rename\n" count=1
for i in *.jpg; do
j=printf "%04d" $count
j="$rename"$j".jpg"
count=$((count + 1))
mv "$i" $j
done
fi
shift
done
フォルダのファイル名がサイズによって変わるように、このスクリプトをどのように変更しますか?
サイズに応じてファイルを並べ替えると、フォルダに次のように表示されます。
a009 978kb
a001 567kb
a003 499kb
a008 432kb
だから、生成されたファイルの名前を変更したいと思います。
a001 978kb
a002 567kb
a003 499kb
a004 432kb
ベストアンサー1
このような:
echo "Please rename and press enter"
read rename
ls |
# prepend filename with file size in bytes
parallel stat -c %s,,sep,,%n -- |
# sort by number
sort -n |
# rename to sequencenumber followed by size in bytes
parallel -q --colsep ,,sep,, mv {2} "$rename"{#}_{1}