있다 펄 rename
명령 트릭을해야한다. 그러나라는 여러 가지 다른 명령이 rename
있으므로 perlexpr
인수로 예상되는 Perl 스크립트를 가지고 있는지 확인하십시오 . 이 패키지는 데비안 및 파생 제품 (Ubuntu, Mint 등) rename
에서 perl
패키지로 제공되는 명령 이지만이라는 다른 유틸리티가있는 다른 배포판에는 없습니다 rename
.
martin@martin ~/test % touch a.txt
martin@martin ~/test % touch b.txt
martin@martin ~/test % rename 's/^(prefix)?/prefix/' *.txt
martin@martin ~/test % ll
insgesamt 0
-rw-rw-r-- 1 martin martin 0 Sep 19 23:56 prefixa.txt
-rw-rw-r-- 1 martin martin 0 Sep 19 23:56 prefixb.txt
martin@martin ~/test % rename 's/^(prefix)?/prefix/' *.txt
martin@martin ~/test % ll
insgesamt 0
-rw-rw-r-- 1 martin martin 0 Sep 19 23:56 prefixa.txt
-rw-rw-r-- 1 martin martin 0 Sep 19 23:56 prefixb.txt
보시다시피, 그것은 pot 등원입니다 -접두사를 여러 번 호출 할 때 접두사를 다시 추가하지 않습니다.
문자열의 길이가 0 인 시작 ( ^
) 또는 시작 다음에 선택적 prefix
문자열 ( )을 대체하여 작동합니다 prefix
.
나는 이것을 쉘 스크립트 또는 쉘 함수로 캡슐화하여 당신을위한 연습으로 남겨 둘 것이다 :)
Postfix는 파일 이름의 어떤 부분이 확장자를 구성하는지 파악해야하기 때문에 조금 더 어렵습니다 ...