sedコマンドを使用してnanoのrcfile(インターフェース要素の色)を編集する方法

sedコマンドを使用してnanoのrcfile(インターフェース要素の色)を編集する方法

nanorc私のファイルの例は次のとおりです。

(...)
## Detect word boundaries differently by treating punctuation
## characters as parts of words.
# set wordbounds

## The characters (besides alphanumeric ones) that should be considered
## as parts of words.  This option does not have a default value.  When
## set, it overrides option 'set wordbounds'.
# set wordchars "<_>."


## Paint the interface elements of nano.  These are examples;
## by default there are no colors, except for errorcolor.
# set titlecolor brightwhite,blue
# set statuscolor brightwhite,green
# set errorcolor brightwhite,red
# set selectedcolor brightwhite,magenta
# set numbercolor cyan
# set keycolor cyan
# set functioncolor green
## In root's .nanorc you might want to use:
# set titlecolor brightwhite,magenta
# set statuscolor brightwhite,magenta
# set errorcolor brightwhite,red
# set selectedcolor brightwhite,cyan
# set numbercolor magenta
# set keycolor brightmagenta
# set functioncolor magenta


## Setup of syntax coloring.
##
## Format:
##
## syntax "short description" ["filename regex" ...]
(...)

## Paint the interface elements of nano.ブロックを次に変更する必要があります。

## Paint the interface elements of nano.  These are examples;
## by default there are no colors, except for errorcolor.
set titlecolor brightwhite,blue
set statuscolor brightwhite,green
set errorcolor brightwhite,red
set selectedcolor brightwhite,magenta
set numbercolor cyan
set keycolor cyan
set functioncolor green

つまり、最初のカラーブロックのコメントを外し、2番目のカラーブロックを削除します(ルートのみに.nanorc推奨)。

sedコマンドを使用してこれを達成するにはどうすればよいですか?私は(1つの大きなコマンドの代わりに)複数のsedコマンドを使用して簡単で読みやすくすることができればこれを好みます。

答え1

努力する:

sed "/## Paint the interface elements of nano./,/^$/ \
     {s/^# //; /## In root's .nanorc you might want to use:/,/^$/d}" infile

## Paint the interface elements of nano.最初の空行と最初の空行の間の行を見つけ、その行がハッシュ空間で始まる場合は、その行のコメントを外し、最初に同じブロック内の空行を見つけるまでハッシュ空間で始まる行の#間他のすべてのアイテムを削除します。## In root's .nanorc you might want to use:私たちが{...}適用したものsedスクリプト必要なブロックのみが印刷され、sed他のすべての行はデフォルトの作業条件と一致しない場合に印刷されます。sed

関連情報