줄을 정확히 일치하는 문자열로 바꾸는 방법

줄을 정확히 일치하는 문자열로 바꾸는 방법

다음 내용의 파일이 있습니다: dskldfsd.com

domain

domain.com

sub.domain.com

domain.main.com

anythinghere

단어가 포함된 줄을 삭제하고 싶습니다 domain. grep을 사용하면 이 명령은 내가 원하는 정확한 줄을 찾습니다.

grep -w '^domain$' test.txt

domain그런데 줄의 처음부터 끝까지 한 단어가 포함된 이 줄을 삭제하고 싶습니다 . 단어가 domain문자열의 일부인 줄을 유지하고 싶습니다 .

답변1

sed를 사용하세요:

sed -i -e '/^domain$/d' test.txt

답변2

어때요?

grep -v '^domain$' test.txt

답변3

왜 grep -v '^domain$'인가? 내가 이해하는 바에 따르면 질문에 따르면 단순히 grep -v 'domain' 입니다.

답변4

표준 도구를 사용한다고 가정하면 다음과 같이 할 수 있습니다.

grep -xF -v 'domain' test.txt >newtest.txt

-x플래그는 grep일치 항목을 전체 줄에 걸쳐 적용하고 -F패턴을 grep정규 표현식이 아닌 고정 문자열로 처리하도록 합니다. 문자열뿐만 아니라 -v모든 줄이 포함되도록 일치 항목의 의미를 반대로 바꿉니다 . 결과는 에 기록됩니다 .test.txtdomainnewtest.txt

관련 정보