ファイル名へのパスの追加

ファイル名へのパスの追加

多くのサブフォルダに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

おすすめ記事