0

を含むMacOSXホストファイルの行をコメント化するスクリプトを作成したいと思います.com。そしてそれを逆転させるための1つ。

したがって、この:

127.0.0.1    foo.com
127.0.0.1    bar.com
127.0.0.1    baz
127.0.0.1    qux

次のようになります:

#127.0.0.1   foo.com
#127.0.0.1   bar.com
127.0.0.1    baz
127.0.0.1    qux

Googleとsedのmanページを見て、bashとsedでいくつか試してみましたが、まだ近づいていません。

sed 's/^/^#/' | grep '.com' < hosts

grep '.com' | sed 's/^/^#/' < hosts

助けてくれてありがとう!

4

2 に答える 2

7
sed '/\.com/s/^/#/' < hosts

解釈:

  • /\.com/-この正規表現に一致する行でのみ、残りのコマンドを実行します
  • s/^/#/#-行の先頭に 挿入します

元のファイルを置き換える場合は、sedの-iオプションを使用します。

sed -i.bak '/\.com/s/^/#/' hosts

これにより、名前が変更hostsされ、更新されたコンテンツhosts.bakで新しいものが作成されます。hosts

元に戻すには、次を使用します。

sed -i.bak '/^#.*\.com/s/^#//' hosts
于 2013-02-05T19:11:26.237 に答える
0

awkで

awk '$2 ~ /.com/{$0 = "#"$0;}{print}' temp.txt

出力

#127.0.0.1    foo.com
#127.0.0.1    bar.com
127.0.0.1    baz
127.0.0.1    qux
于 2013-02-06T01:28:35.403 に答える