파일 이름에 경로 추가

파일 이름에 경로 추가

많은 하위 폴더에 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

관련 정보