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

즉, 첫 번째 색상 블록의 주석 처리를 해제하고 두 번째 색상 블록을 삭제합니다( .nanorc루트에만 권장).

sed 명령을 사용하여 이를 어떻게 달성할 수 있습니까? 나는 (하나의 큰 명령 대신) 여러 개의 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

관련 정보