サンプルファイルの内容:
--------------------
NETWORKING=yes
HOSTNAME=wls1.ebs-testsrvrs.com
# oracle-rdbms-server-12cR1-preinstall : Add NOZEROCONF=yes
NOZEROCONF=yes
--------------------
「HOST」で始まるすべての行をコメントアウトしたいです。
ベストアンサー1
存在するvi
:
:%s/^HOST/#&/
または
:g/^HOST/s//#&/
最初のコマンドは%
「フルバッファから」を意味し、縮小は最初の行1,$
から最後の行までを意味します。&
置換セクションの置換内容は、^HOST
パターン()に一致する全文で置き換えられます。
2番目のコマンドは、s///
セルフエディタを継承したグローバル()コマンドを使用して、一致したすべての行に置換()を適用します。 2番目のケースでは、コマンドは空の正規表現を使用します。これにより、コマンドで最近使用した正規表現を再利用できます。置換は最初のコマンドと同じです。^HOST
g
vi
ed
s///
^HOST
g
そしてsed
:
sed 's/^HOST/#&/' input >output
または
sed '/^HOST/s//#&/' input >output
vi
in(常に入力ストリームのすべての行にすべてのコマンドを適用するため、このようなものを明示的sed
には使用しません)と同じ方法です。%
g
sed
到着削除する次に始まる行のコメント文字#HOST
:
sed 's/^#HOST/HOST/' input >output
または
sed '/^#HOST/s/.//' input >output
上記の2つのコマンドのうち、2番目のコマンドは、で始まるすべての行s///
にコマンドが適用されます#HOST
。このs///
コマンドは行の最初の文字のみを削除します。
vi
これら2つのコマンドに対応するコマンドは次のとおりです。
:%s/^#HOST/HOST/
そして
:g/^#HOST/s/.//
それぞれ