
: 으로 작성된 파일이 있는데 현재 이름에 오류가 있어서 주문 번호별로 쉽게 분류할 수 있도록 test_026542_time0663550.5.jpeg
이름을 as로 바꾸고 싶습니다 .test_0663550.jpeg
답변1
기능 을 사용하세요 rename
. 기본(프로토타입 형태)은 입니다 $ rename s/"SEARCH"/"REPLACE"/g *
. 그러면 "SEARCH" 파일이 "REPLACE"로 대체됩니다. 전역을 의미 /g
하므로 "SEARCH SEARCH.jpg"가 있으면 이름이 "REPLACE REPLACE.jpg"로 변경됩니다. 은 또는 *
와 같은 확장 유형입니다 . 따라서 귀하의 예는 다음과 같습니다..mp3
.pdf
$ rename s/'test_026542_time0663550.5.jpeg'/'test_0663550_.jpeg'/g *
이것도움이 될 것입니다.
답변2
배터리가 부족해서 이만 줄이겠습니다
찾기+awk 원라이너
find . -type f -printf "%f\n" | awk -F "_"
'{ORIG=$0;gsub(/\_[[:digit:]].*\_time/,"_");gsub(/\.[[:digit:]].*\.jpeg/,".jpeg"); NEW=$0;cmd="mv "ORIG"
"NEW;system(cmd)}'
데모
testdir2:$ ls
test_13442_time1446925878.1.jpeg test_27796_time1446925887.4.jpeg
test_25495_time1446925884.3.jpeg test_29681_time1446925881.2.jpeg
testdir2:find . -type f -printf "%f\n" | awk -F "_"
'{ORIG=$0;gsub(/\_[[:digit:]].*\_time/,"_");gsub(/\.[[:digit:]].*\.jpeg/,".jpeg"); NEW=$0;cmd="mv "ORIG"
"NEW;system(cmd)}'
testdir2:$ ls
test_1446925878.jpeg test_1446925881.jpeg test_1446925884.jpeg test_1446925887.jpeg