에서 파일의 일괄 이름 바꾸기 각기 다른 확장 기능을 사용하기 위해 "oldname"을 "newname"으로 이름을 바꿔서 시도해 보았습니다. 따라서 시도해 보았습니다 :내가 다음과 같이 파일의 세트가 UNIX
rename -v 's/\oldname_*.*$/\newname_*.*/’ oldname_*.*
하지만 작동하지 않습니다 ..
어떤 제안이 있습니까?
에서 파일의 일괄 이름 바꾸기 각기 다른 확장 기능을 사용하기 위해 "oldname"을 "newname"으로 이름을 바꿔서 시도해 보았습니다. 따라서 시도해 보았습니다 :내가 다음과 같이 파일의 세트가 UNIX
rename -v 's/\oldname_*.*$/\newname_*.*/’ oldname_*.*
하지만 작동하지 않습니다 ..
어떤 제안이 있습니까?
한 가지 방법은 파일 이름을 변경 :
for i in oldname*; do mv "$i" "${i/oldname/newname}"; done
감사합니다. :) – madkitty
먼저 "작동하지 않는 것"이 실제로 무엇을 의미하는지 지정해야합니다. 그것은 아무것도하지 않습니까? 잘못 이름을 바꿉니 까? 해부학의 특정 부분에 전기 펄스를 전달합니까? 당신이 생각에 다른 것을 의미하기 때문에 (
이rename -v 's/^oldname/newname/' oldname_*.*
실제 표현에서 와일드 카드 물건, 특히을 포함 할 필요가 없습니다 : :-)
어떤 경우, 나는으로 시작 했죠 xyz_*
은 xyz
을 의미하고 그 뒤에 0이 _
자를 의미하고, 은이 아니고 xyz_
이되며 그 다음에 아무 것도 표시되지 않으며 .*
은 0 이상의 문자를 의미하기 때문에 문제를 묻는 것입니다.
파일 이름의 필터링은 마지막 인수에 의해 수행됩니다. 해당 인수와 일치하는 파일 만 이름이 변경된다는 것을 알고 있으므로 정규 표현식을 조정하여 첫 번째 비트를 변경할 수 있습니다.
또한, 당신이 바로 rename
이 있는지 확인하십시오. 구문이 다른 리눅스가 사용할 수있는 다른 rename
이있다 : 그 시스템에서
rename oldname newname oldname_*.*
는 정규식의 변형은 종종 prename
라고합니다.
마지막으로, 그리고 바보 같은 질문이있을 수 있습니다 무엇을 용서, 파일이 당신이 그들을 것으로 예상 이름의 것을 확인 당신입니까? 간단한 ls -al oldname*
이이를 보여야합니다. 여담으로
, 이것은 내 데비안 상자에서 잘 작동 :
pax> touch oldname_1.txt oldname_1.pdf oldname_1.bak
pax> ll *name*
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 oldname_1.bak
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 oldname_1.pdf
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 oldname_1.txt
pax> rename -v 's/^oldname/newname/' oldname_*.*
oldname_1.bak renamed as newname_1.bak
oldname_1.pdf renamed as newname_1.pdf
oldname_1.txt renamed as newname_1.txt
pax> ll *name*
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 newname_1.bak
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 newname_1.pdf
-rw-r--r-- 1 pax pax 0 Sep 6 10:56 newname_1.txt
체크 여기 : HTTP : //theunixshell.blogspot. co.kr/2013/01/bulk-renaming-of-files-in-unix.html – Vijay