아주 간단한 질문입니다. 내 디렉토리에있는 모든 파일의 형식은 6bfefb348d746eca288c6d62f6ebec04_0.jpg
입니다. 나는 그들에게 6bfefb348d746eca288c6d62f6ebec04.jpg
처럼 보이길 원합니다. 본질적으로 모든 파일 이름의 끝에 _0
을 제거하고 싶습니다. 어떻게하면 bash로이 일을 할 수 있을까요? 펄의 독립형 이름 바꾸기 명령을디렉토리의 모든 파일 중 마지막 두 문자를 자르는 방법은 무엇입니까?
-1
A
답변
4
:
rename -n 's/..(\....)$/$1/' *
모든 것이 잘 보인다면, -n
를 제거합니다.
이 sed
의 s/regexp/replacement/
명령 유사한 구문이 독립 rename
명령을 사용할 수있다. 정규식에서 .
는 한 문자와 일치합니다. \.
은 줄 끝 (여기 파일 이름의 끝)과 일치하는 .
및 $
과 일치합니다. (
및는 12 진수를 나타내는 정규 표현식의 특수 문자입니다 (여기에 .
및 파일 이름 끝에 3 자). $1
으로 재사용 할 수 있습니다. sed
은 첫 번째 역 참조에 \1
을 사용하고 이름 바꾸기는 $1
을 사용합니다.
참조 : Back-references and Subexpressions (sed 포함)
답변 해 주셔서 감사합니다. 이 명령에서 무슨 일이 일어나는지 설명해 주시겠습니까? 죄송합니다. Perl에서 0 번 경험했습니다. –
@TerryMartin : 답변을 업데이트했습니다. – Cyrus