정규식 한정자를 사용하여 zmv로 여러 파일의 이름을 바꾸는 방법은 무엇입니까?


4

단일 디렉토리에 다음 파일이 있습니다.

1-1 - different text for each file here.txt
1-2 - different text for each file here.txt
.
.
1-9 - different text for each file here.txt
1-10 - different text for each file here.txt
1-11 - different text for each file here.txt
1-12 - different text for each file here.txt
.
.


에서 zmv실행 하여 파일을 한 번에 모두 이름을 바꾸고 싶습니다 zsh.

1-01 - different text for each file here.txt
1-02 - different text for each file here.txt
.
.
1-09 - different text for each file here.txt
1-10 - different text for each file here.txt
1-11 - different text for each file here.txt
1-12 - different text for each file here.txt


내가 시도한 것은 다음과 같습니다. zmv '1-([0-9])(*)' '1-0$1$2'


그 결과 다음과 같은 파일 이름이 나타납니다.

1-01 - different text for each file here.txt
1-02 - different text for each file here.txt
.
.
1-09 - different text for each file here.txt
1-010 - different text for each file here.txt
1-011 - different text for each file here.txt
1-012 - different text for each file here.txt
.
.

그래서 zmv '1-([0-9]{1})(*)' '1-0$1$2'하이픈 뒤에 단일 숫자가있는 파일 만 일치하도록 찾기 패턴을 변경하려고 생각 했지만 작동하지 않습니다 (방금 얻습니다 zmv:232: no matches found: 1-([0-9]{1})(*)).

내가 뭘 잘못하고 있죠? 이 사용 가능한 짝수 zmv또는 내가 좋아하는 뭔가를 사용해야 sedA의 for같은 루프 또는 뭔가?

답변:


4

이것은 당신을 위해 작동해야합니다 :

zmv '1-([0-9])( *)' '1-0$1$2'

또는

zmv '1-([0-9])([^0-9]*)' '1-0$1$2'

공백이나 숫자가 아닌 한 자릿수 만 포함하도록 일치시켜야합니다. 방법으로 당신은 다음에 하나의 숫자와 일치했다, 그것을했다 아무것도 .


아아, 그것은 매우 간단했지만 그것을 보지 못했습니다! 내 눈을 열어 줘서 고마워 :)
Marco Peluso
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.