반응형

sed 에서 2개 이상 검색으로 찾고 제일 마지막 조건에 매칭되는 문자열로 변환하는 방법?

sed에서는 여러 검색 조건을 동시에 사용할 수 있습니다. 이를 위해서는 각 검색 조건을 별도의 표현식으로 나타내고 이를 쉼표(,)로 구분하면 됩니다. 예를 들어, 파일에서 "apple"과 "orange"이라는 단어가 포함된 모든 라인에서 "fruit"으로 치환하고 싶은 경우 다음과 같이 사용할 수 있습니다.

sed -e '/apple.*orange/ s/.*/fruit/' filename.txt

위 예제에서, `/apple.*orange/`은 "apple"과 "orange"이라는 두 단어가 함께 포함된 라인을 찾는 검색 조건입니다. `s/.*/fruit/`는 해당 라인 전체를 "fruit"으로 치환합니다.

만약 "apple"과 "orange"이라는 단어가 각각 따로 있는 라인에서 "fruit"으로 치환하고 싶다면, 다음과 같이 두 개의 검색 조건을 사용하면 됩니다.

sed -e '/apple/ {/orange/ s/.*/fruit/}' filename.txt

위 예제에서, `/apple/`은 "apple"이 포함된 라인을 찾는 검색 조건입니다. 중괄호({}) 안에는 해당 라인에서 다른 검색 조건 `/orange/`을 추가하고, 그 라인을 "fruit"으로 치환하는 명령어가 포함됩니다.

이 방법으로는 두 개 이상의 검색 조건을 동시에 사용하고, 맨 마지막에 매칭되는 문자열로 치환할 수 있습니다.

---

  • ChatGPT로부터 답변 받음
  • answered by ChatGPT
반응형

+ Recent posts