>

많은 하위 폴더에 test1.jpg라는 사진이 있습니다. 본질적으로 파일의 경로를 파일 이름에 추가하여 혼동을 피하고 싶습니다.

샘플 경로 :

/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg

완료되면 파일 이름을 바꾸십시오 :

123_02_01_01.jpg

찾기 및 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
    
    

  • 이전 유닉스의 SNMP 트랩
  • 다음 shell - 문자 클래스를 사용하는 방법