질문

질문

다음과 같은 이름의 파일 세트가 있습니다.

_9978967868768763ghjgj7598983678hjva_week1-6.pdf
_78637832bdsjh275637bkkaww786b_week12-32.pdf
8786767867868978713bkwkhjhkjqw_week1-622.pdf
867813567bdjsbgbadsyu6712353125561235_week100-6.pdf

나는 이점을 활용하는 데 관심이 있습니다.rename이름을 얻는 유틸리티:

 week1-6.pdf
 week12-32.pdf
 week1-622.pdf
 week100-6.pdf

이를 달성하기 위한 정규식은 다음과 같습니다.

(.*)(week.*)

좋은 결과(정규식 101):

여기에 이미지 설명을 입력하세요.

질문

이 구문을 이름이 바뀐 형식 표현식으로 변환하는 방법:

s/expr1/expr2/[gi]

사실은 첫 번째 그룹을 삭제하고 싶어요.

노트

mv나는 솔루션을 사용하거나 기반으로 하는 데 관심이 없습니다 sed. rename 유틸리티를 사용하고 싶습니다 .

답변1

이것을 사용해 보세요.올바른 방법:) 명령을 수정했습니다(매우 가까웠어요...).

rename 's/(.*)(week.*)/$2/' *.pdf

또는 단순화하려면:

rename 's/.*(week.*)/$1/' *.pdf

답변2

prename방법:

prename -n 's/.*_(week.*$)/$1/' *_week*.pdf
  • $1- 첫 번째로 캡처된 그룹을 가리킵니다.

관련 정보