![sed를 사용하여 파일 목록의 파일 이름을 .ear로 바꾸는 방법은 무엇입니까?](https://linux55.com/image/73745/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%EB%AA%A9%EB%A1%9D%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20.ear%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음 내용이 포함된 파일이 있습니다.
/appl/as/var/spool/ears/mps/ear1.ear
...
ear1.ear
only 의 이름을 바꾸고 싶은데 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
.