エディタを使用するのに手助けが必要ですvi
。
特定のユーザーに対してcrontabの1行をコメントアウトしようとしています。
これはcrontabの他の多くの行の1つです:
0,5,10,15,20,25,30,35,40,45,50,55 2-23 * * * /home/appuser/CPU_check.sh
そのため、viエディタ(crontab -e)で "CPU_check"文字列を検索し、行の先頭に#addを追加してコメントアウトしようとしています。
最後に、viエディタで2つの文字列(CPU_checkやMemory_checkなど)を使用して検索する必要がある場合は、文字列を含む各行の先頭に#を追加します。
答え1
第六中学校では
:g/CPU_check/s/^/#/
どこ
:
viにコマンドモードに入るように指示するg
gなしで「グローバルに」適用(複数行の場合)は、最初の行にのみ適用されます。/CPU_check/
住所フィールドの一致CPU_CHECK
s
デリゲート/^/
行の始まり(一緒に)/#/
#
シンボル
追加の代替実行
保存と終了
:x
答え2
あなたは使用された解決策が欲しいと明示的に言いましたvi
。ただし、これは1行のsedコマンドでも達成できます。
sed -i -e 's/.*CPU_check/# &/' -e 's/.*Memory_check/# &/' crontab
このソリューションはインラインファイルを変更します。 sed呼び出しでフラグを変更してファイルのバックアップを保存できます-i
。-i.bak
答え3
「vi
」と仮定すると実際 vi
(いいえvim
):
:set extended
:g/(CPU|Memory)_check/s/^/#/
まず、検索モードで拡張正規表現を有効にしてから、set extended
文字列またはを含むすべての行に置換s/^/#/
(#
行の先頭に - 文字を挿入)を適用します。CPU_check
Memory_check
では、vim
以下を使用できます。
:g/\(CPU\|Memory\)_check/s/^/#/
または
:g/\v(CPU|Memory)_check/s/^/#/
同じことをしてください。
エスケープを使用すると、パターンを拡張正規表現として認識できます\v
。 「very Magic」の略です(参考資料参照)。vim
vim
v
\v
:help magic
vim
ed
拡張正規表現のサポートがない場合は、2つの別々の編集コマンドを使用できます。
g/Memory_check/s/^/#/
g/CPU_check/s/^/#/
sed
拡張正規表現はそのオプションでサポートされています-E
。
sed -E '/(CPU|Memory)_check/s/^/#/'
または標準を使用してくださいsed
。
sed -e '/CPU_check/s/^/#/' -e '/Memory_check/s/^/#/'