コマンドラインを使用してシェル/config/rubyスクリプトにコメントを付けるか、コメントを解除する方法はありますか?
たとえば、
$ comment 14-18 bla.conf
$ uncomment 14-18 bla.conf
オンラインログインが追加または削除されます#
。一般的に使用しますが、行の内容を知ってから検索と置換を実行する必要があります。これにより、複数のピンがあると誤った結果が得られます(N番目のピンaのみを交換しようとします)。bla.conf
14
18
sed
ベストアンサー1
bla.confの2行から4行にコメントを追加します。
sed -i '2,4 s/^/#/' bla.conf
必要なコマンドを生成するには、上記の内容を comment というシェルスクリプトに入れます。
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
このスクリプトは、最初の行と最後の行がダッシュではなくカンマで区切られていることを除いて、スクリプトと同じように機能します。たとえば、
comment 2,4 bla.conf
コメント解除コマンドも同様に生成できます。
高度な機能
sed
ラインの選択はかなり印象的です。最初の行と最後の行を数字で指定することに加えて、正規表現で指定することもできます。したがって、インクルードラインからfoo
インクルードラインまでのすべてのラインにコマンドを発行するには、bar
次のようにします。
comment '/foo/,/bar/' bla.conf
BSD(OSX)システム
BSD sedの場合、この-i
オプションには空の文字列でも引数が必要です。たとえば、上記のトップレベルのコマンドを次のように置き換えます。
sed -i '' '2,4 s/^/#/' bla.conf
そしてスクリプトのコマンドを次のように置き換えます。
sed -i '' "$1"' s/^/#/' "$2"