lvm.conf
파일에서 문자열로 시작하는 줄을 찾고 대괄호 global_filter
사이의 모든 항목을 제거해야 합니다( "r/.*/"
.
global_filter로 시작하는 줄은 1개뿐입니다.
분해하기 전에:
global_filter = [ "a|^/dev/sda.*$|", "a|^/dev/sdb.*$|", "r/.*/"]
삭제 후에는 다음과 같아야 합니다.
global_filter = [, "r/.*/"]
답변1
sed -i -e '/^global_filter/{\|"r/\.\*/"|s|.*|global_filter = [, "r/.*/"]|;}' data
설명하다
sed -i -e '
# look at only lines that begin with global_filter
/^global_filter/{
# and also they should contain the string "r/.*/"
# change everything to the following expression
\|"r/\.\*/"| s|.*|global_filter = [, "r/.*/"]|
## alternatively could be written:
#\|"r/\.\*/"|c\
#global_filter = [, "r/.*/"]
}
' data
답변2
이 시도:
$ echo 'global_filter = [ "a|^/dev/sda.$|", "a|^/dev/sdb.$|", "r/.*/"]'|\
sed -E 's/(^global_filter = \[)(.*)(, "r.*$)/\1\3/'
산출:
global_filter = [, "r/.*/"]