2017-09-13 5 views
-1

아주 간단한 질문입니다. 내 디렉토리에있는 모든 파일의 형식은 6bfefb348d746eca288c6d62f6ebec04_0.jpg입니다. 나는 그들에게 6bfefb348d746eca288c6d62f6ebec04.jpg처럼 보이길 원합니다. 본질적으로 모든 파일 이름의 끝에 _0을 제거하고 싶습니다. 어떻게하면 bash로이 일을 할 수 있을까요? 펄의 독립형 이름 바꾸기 명령을디렉토리의 모든 파일 중 마지막 두 문자를 자르는 방법은 무엇입니까?

답변

4

:

rename -n 's/..(\....)$/$1/' * 

모든 것이 잘 보인다면, -n를 제거합니다.


seds/regexp/replacement/ 명령 유사한 구문이 독립 rename 명령을 사용할 수있다. 정규식에서 .는 한 문자와 일치합니다. \.은 줄 끝 (여기 파일 이름의 끝)과 일치하는 .$과 일치합니다. ( 및는 12 진수를 나타내는 정규 표현식의 특수 문자입니다 (여기에 . 및 파일 이름 끝에 3 자). $1으로 재사용 할 수 있습니다. sed은 첫 번째 역 참조에 \1을 사용하고 이름 바꾸기는 $1을 사용합니다.

참조 : Back-references and Subexpressions (sed 포함)

+0

답변 해 주셔서 감사합니다. 이 명령에서 무슨 일이 일어나는지 설명해 주시겠습니까? 죄송합니다. Perl에서 0 번 경험했습니다. –

+0

@TerryMartin : 답변을 업데이트했습니다. – Cyrus