저는 다양한 소스의 "호스트" 파일을 사용하고 다음 SED 코드를 사용하여 특정 웹사이트의 차단을 해제합니다.
sed -i '/0.0.0.0 internet.com/s/^/#/g' /tmp/hosts
결과:
앞에 #이 붙는다
0.0.0.0 internet.com
뿐만 아니라
0.0.0.0 internet.com.site
나는 그것을 고쳐야한다.
답변1
완전한 줄만 일치시키려면 완전한 줄을 지정하십시오.
sed -i '/^0.0.0.0 internet.com$/s/^/#/g' /tmp/hosts
^
대체된 검색 모드에서 이미 사용했기 때문에 이러한 방법은 오프라인으로 실행됩니다.
$
줄의 끝을 나타냅니다 .
따라서 하위 문자열로 포함된 행뿐만 아니라 ^0.0.0.0 internet.com$
정확하게 일치하는 행만 일치됩니다 .0.0.0.0 internet.com
답변2
이것이 내가 사용하는 것입니다. 별칭이 포함된 항목도 처리합니다.
$ cat -vet hosts
0.0.0.0 internet.com internet$
0.0.0.0 internet.com^Iinternet$
0.0.0.0 internet.com$
0.0.0.0 internet.com.site$
$ sed 's/^0.0.0.0 internet.com\( \|\t\|$\)/# &/' hosts
# 0.0.0.0 internet.com internet
# 0.0.0.0 internet.com internet
# 0.0.0.0 internet.com
0.0.0.0 internet.com.site
필요한 경우 여러 공백을 처리하도록 쉽게 개선할 수 있습니다.