sed를 사용하여 파일 목록의 파일 이름을 .ear로 바꾸는 방법은 무엇입니까?

sed를 사용하여 파일 목록의 파일 이름을 .ear로 바꾸는 방법은 무엇입니까?

다음 내용이 포함된 파일이 있습니다.

/appl/as/var/spool/ears/mps/ear1.ear
...

ear1.earonly 의 이름을 바꾸고 싶은데 ear2.ear다음 sed명령을 사용하고 있지만 운이 없습니다.

sed -i.bak s/*.ear/ear2.ear/g earlist.mps

earlist.mps파일 이름은 어디에 있습니까?

나는 시도했다:

sed -i.bak s/.*.ear/ear2.ear/g earlist.mps

하지만 이렇게 하면 전체 파일이 ear2.ear.

답변1

그리고 sed:

sed 's|/[^/]\+\.ear$|/ear2.ear|' file
  • .ear( 줄 끝과 일치)로 $끝나는 줄을 검색합니다 . 파일 이름은 /다음을 제외한 모든 것이 될 수 있습니다: [^/]\+. +문자( 가 아님 /)가 1회 이상 반복될 수 있음 을 나타냅니다 .
  • 그런 다음 일치 항목을 /ear2.ear.

관련 정보