bash, 파일, 파일 이름 바꾸기, 위치 전환
Dec 22 2020
이름을 바꾸는 방법
sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4
...에
sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...
위치의 날짜 / 문자열을 7-14
파일 이름 끝으로 이동하기 만하면 됩니다.
감사.
답변
7 bac0n Dec 22 2020 at 22:04
mmv는 복잡하지 않은 파일 이름 변경에 적합 합니다.
mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'
특히 동일한 디렉토리에 다른 파일이있을 수있는 경우 다른 이름을 변경하지 않도록 참조 포인트를 더 확보하는 것도 도움이 될 수 있습니다.
mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
^ ^ ^ ^
1 2 3 4
sluno-20201027-call-metroua-status.mp4
^------- ^-------------
1 2 3 4
내가라면 최소한으로 할 일, mv
하고 bash
나는를위한 루프와 갈 것 bash
BRE 매칭 내장.
for i in *.mp4; do \
[[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \ mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
4 pLumo Dec 22 2020 at 20:46
사용 rename
:
rename -n 's/^(.*?)-(.*?)-(.*?)(\.mp4)$/$1-$3-$2$4/' *.mp4
-n
출력에 만족한다면 제거하십시오 .
설명을 보려면 여기를 방문 하십시오 .
JohnP Dec 30 2020 at 01:47
다른 옵션 :
$ qmv {패턴}
선택한 편집기에 2 열의 파일 이름을 드롭합니다.
원하는 파일 이름을 갖도록 오른쪽 열을 수정하십시오.
왼쪽 열은 원래 이름입니다. 오른쪽 그룹의 시작 열은 변경할 수 없으므로 자동 줄 바꿈이 방해가 될 수 있습니다.
각 에디터의 전문가라면, 특히 vim 칼럼과 비주얼 모드의 경우 매우 빠를 수 있습니다.
일반적으로 이름 바꾸기를 사용하지만 복잡한 요구에 대해서는 편집기에서 정확한 이름을 보는 것이 좋습니다.