나는 예를 들어, '0.1'로 끝나는 파일의 번호를 가지고 :Linux/Unix에서 하나의 확장에서 다른 확장으로 여러 파일의 이름을 바꾸는 방법은 무엇입니까?
example.file.ex1.1
example.file.ex2.1
example.file.ex3.1
내가 빨리 끝에서 '0.1'없이 모두 이름을 바꿀 수있는 방법 (예 : 예 있는가 .file.ex1, example.file.ex2 등)?
감사합니다.
나는 예를 들어, '0.1'로 끝나는 파일의 번호를 가지고 :Linux/Unix에서 하나의 확장에서 다른 확장으로 여러 파일의 이름을 바꾸는 방법은 무엇입니까?
example.file.ex1.1
example.file.ex2.1
example.file.ex3.1
내가 빨리 끝에서 '0.1'없이 모두 이름을 바꿀 수있는 방법 (예 : 예 있는가 .file.ex1, example.file.ex2 등)?
감사합니다.
순수 bash는 솔루션 :
for curFile in example.file.*.1; do
mv -- "$curFile" "${curFile:0:-2}"
done
예, rename와 함께이 시도 : 당신의 검사 결과가 유효한 경우
rename -n 's/\.1$//' *
가 -n
(드라이 런 모드 스위치)를 제거합니다.
warning http://pix.toile-libre.org/upload/original/1377510865.png은 또는이 작업을 수행 할 수 있으므로 조심하지 않을 수도 있습니다 동일한 이름을 가진 다른 도구가 있습니다.
다음 명령 (linux
)
$ file $(readlink -f $(type -p rename))
를 실행하고
.../rename: Perl script, ASCII text executable
다음이 올바른 도구가 될 것으로 보인다 = 같은 결과가있는 경우)
그렇지 않은 경우 Ubuntu
같은 Debian
에 기본 (보통 이미 경우) 및 유도체
$ sudo update-alternatives --set rename /path/to/rename
하지 적어도
마지막으로,이 도구는 원래 래리 벽, 펄의 아버지에 의해 작성되었습니다.
''rename''의 기본값이 우분투 또는 데비안에서 작동하지 않는 이유를 설명해 주시겠습니까? ''/ usr/bin/rename -n 's/.1 //'*''을 실행하는 것이 기본 이름 바꾸기가 아니라면 작동하는 것 같습니다. 나는 그것을 얻지 못한다. 둘 다 perl 표현식을 허용하지만 하나는 작동하지만 다른 것은 작동하지 않는다. 그 차이점은 무엇입니까? –
기본 이름 바꾸기가 우분투/데비안에서 작동해야합니다 –
예! 네가 옳아. 내 잘못 –
또 다른 parameter expansion를 사용 bash 솔루션 :
for curFile in example.file.*.1; do
mv "$curFile" "${curFile%.1}"
done
감사합니다. 작동 방식 : f = file.zip; echo $ {f % .zip} # -> 파일 –
이 질문은이 [유닉스 및 리눅스 (http://unix.stackexchange.com/) –
모든 큰 응답에 더 적합하기 때문 주제에서 벗어난 것으로 보인다. 감사! – user2716340
시도했지만 분명히 나는 "명성"이 충분하지 않습니다. =) – user2716340