多くのサブフォルダにtest1.jpgという名前の写真があります。デフォルトでは、混乱を避けるためにファイルパスを名前に追加したいと思います。
サンプルパス:
/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg
完了したら、ファイル名を変更したいと思います。
123_02_01_01.jpg
誰かがこのタスクを実行するためにfindコマンドとmvコマンドを使用するのを手伝うことはできますか?私は初めてbashに触れました。
#!/bin/bash
find . -name '*.jpg' | grep test1
newname="$(echo ${FILE} | grep -o "[0-9]*" | tr "\n" "_" | sed s/2016_//;s/_$/.jpg\n/;')"
mv "${FILE}" "${newname}" ;
done
exit 0
答え1
始めるのに役立ちます。
$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tr "\n" "_" | sed 's/_$/.jpg\n/;'
2016_123_2_1.jpg
編集、2016年スキップ。
$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tail -n +2 | tr "\n" "_" | sed 's/_$/.jpg\n/;'
123_2_1.jpg
または
$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tr "\n" "_" | sed 's/2016_//;s/_$/.jpg\n/;'
123_2_1.jpg