![grep 및 sed를 사용하여 특정 기존 줄 뒤에 새 줄을 추가하시겠습니까?](https://linux55.com/image/13510/grep%20%EB%B0%8F%20sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8A%B9%EC%A0%95%20%EA%B8%B0%EC%A1%B4%20%EC%A4%84%20%EB%92%A4%EC%97%90%20%EC%83%88%20%EC%A4%84%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
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