리눅스 shell
sed 에서 2개 이상 검색으로 찾고 제일 마지막 조건에 매칭되는 문자열로 변환하는 방법?
라이언(Ryan)
2023. 3. 8. 16:15
반응형
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
반응형