내 친구가 Windows에서 이런 방식으로 수많은 파일을 그룹화했습니다.
우분투로 전환하게 한 후에는 더 이상 앞의 느낌표 수에 따라 파일 순서가 지정되지 않으므로 다음 규칙에 따라 파일을 어떻게 전환할 수 있는지 알고 싶습니다.
1
그리고!
!!
0
그리고!!!
!!!!
awk를 사용해야 할 것 같지만 전문가가 아니므로 여기에 있습니다 ..
답변1
GUI를 사용하여 파일 및 디렉터리의 일괄 이름을 바꾸려면 다음을 사용할 수 있습니다.GP이름 바꾸기.
다음을 사용하여 설치할 수 있습니다.
sudo apt-get install gprename
답변2
Python 스크립트에서:
#!/usr/bin/env python3
import os
import shutil
import sys
dr = sys.argv[1]
replace = ["!", "!!", "!!!", "!!!!"]
for f in os.listdir(dr):
test = [f.startswith(s) for s in replace]
if test.count(True) > 2:
shutil.move(dr+"/"+f, dr+"/"+"0"+f.replace("!", ""))
elif 0 < test.count(True) < 3:
shutil.move(dr+"/"+f, dr+"/"+"1"+f.replace("!", ""))
이름의 시작 부분에만 발생한다고 가정하면 선행 !!!!
및 !!!
by 0
, 및 !!
by !
가 대체됩니다 .1
!
그것을 사용하려면
- 스크립트를 빈 파일에 붙여넣고 다른 이름으로 저장하세요.
rename.py
다음 명령을 사용하여 터미널 창에서 실행합니다.
python3 /path/to/rename.py '<directory>'
<directory>
이름을 바꿀 파일이 포함된 디렉터리는 어디에 있습니까?
답변3
예를 들어 Perl 기반 rename
명령을 사용할 수도 있습니다.
rename -vn -- 's/^!{1,2}(?!!)/0/' *
이름 시작 부분( )에 !
a가 뒤따르지 않는 하나 또는 두 개의 문자와 일치합니다 .!
^
에스대체 0
; 그리고
rename -vn -- 's/^!{3,4}(?!!)/1/' *
이름 시작 부분( )에 !
a가 뒤따르지 않는 3~4개의 문자와 일치합니다 .!
^
에스대체 1
.
참고: -n
스위치를 사용하면 실제로 이름을 변경하지 않고도 '모의 실행'을 수행할 수 있습니다. 먼저 표현식을 테스트하고 n
계속하려면 제거하십시오.