grep 및 sed를 사용하여 특정 기존 줄 뒤에 새 줄을 추가하시겠습니까?

grep 및 sed를 사용하여 특정 기존 줄 뒤에 새 줄을 추가하시겠습니까?

grep&를 사용하여 파일에서 텍스트를 찾고 변경할 수 있다는 말을 들었지만 sed직접 작동시킬 만큼 충분히 이해하지는 못합니다.

구성 파일이 있습니다(lighttpd.conf) 새 줄을 추가해야 합니다.

server.modules  += (
        "mod_setenv"
)
setenv.add-response-header = ( "X-UA-Compatible" => "IE=edge",
                               "X-Frame-Options" => "Deny" )
setenv.add-environment = ("LC_ALL" => "en_US.UTF-8")
$HTTP["url"] =~ "config.js$" {
        setenv.add-response-header = ( "Cache-Control" => "no-store, no-cache, must-revalidate, post-check=0, pre-check=0" )
}

ssl.cipher-list = "!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES"
ssl.dh-file = "/etc/lighttpd/dhparams.pem"

$HTTP["url"] =~ "^/restapi" {
    proxy.server = ( "" =>
                    ((
                      "host" => "127.0.0.1",
                      "port" => "9202"
                    ))
                   )
}

url.rewrite-if-not-file = ( "^/ui(?!\.\w+$)" => "/index.html",
"^/login" => "/index.html" )

server.stream-response-body = 2

#------HTTPPORT_CONFIG START------
#------HTTPPORT_CONFIG END------

ssl.ca-file = "/etc/lighttpd/ca-cert.pem"이 줄 뒤에 다음과 같은 줄을 추가 해야 합니다 ssl.dh-file = "/etc/lighttpd/dhparams.pem".

ssl.cipher-list = "!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES"
ssl.dh-file = "/etc/lighttpd/dhparams.pem"
ssl.ca-file = "/etc/lighttpd/ca-cert.pem"

$HTTP["url"] =~ "^/restapi" {
    proxy.server = ( "" =>

나는 RegEx를 이해하려고 몇 시간을 보냈지만 ssl.dh 파일에서 해당 줄을 찾는 데 필요한 문자열을 알아낼 수도 없고 그 뒤에 새 줄을 삽입하는 방법도 알 수 없습니다.

누구든지 나를 도울 수 있다면 매우 감사하겠습니다.

답변1

내가 보기에 유일하게 까다로운 부분은 패턴과 대체 문자열에 슬래시가 포함되어 있다는 것입니다. 따라서 슬래시를 이스케이프 처리하지 않으려면 %sed ex와 같은 다른 구분 기호를 설정해야 합니다.

sed '
\%^ssl.dh-file = "/etc/lighttpd/dhparams.pem"%a\
ssl.ca-file = "/etc/lighttpd/ca-cert.pem"
' lighttpd.conf

관련 정보