私はさまざまなソースの「ホスト」ファイルを使用し、次のSEDコードを使用して特定のWebサイトのブロックを解除します。
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
必要に応じて複数のスペースを処理するように簡単に改善できます。