sed + 특정 단어 뒤의 문자 삭제

sed + 특정 단어 뒤의 문자 삭제

"usa"라는 단어 뒤에 "."가 없으면 마지막 "."을 제거하고 싶습니다.

내 sed 명령은 마지막 "."만 삭제합니다.

그러나 "United States"라는 단어 바로 뒤에 있는 "."를 제거하려면 sed 구문(규칙)에 추가해야 합니다.

 host 10.1.23.86 | awk '{print $NF}'
 sho4.il.usa.


 host 10.1.23.86 | awk '{print $NF}' | sed s'/.$//'
 sho4.il.usa

"USA"라는 단어 바로 뒤에 있는 "."를 제거하려면 sed에 무엇을 추가해야 합니까?

답변1

usa표현을 추가하면 됩니다 . 또한 .문자가 아닌 점 자체만 일치하도록 이스케이프해야 합니다 .

sed s'/usa\.$/usa/'

답변2

awk할 수 있는 대부분의 작업을 수행할 수 있으므로 sed함께 연결할 필요가 거의 없습니다.

host 10.1.23.86 | awk '{sub(/usa\.$/, "usa", $NF); print $NF}'

관련 정보