sed
파일을 편집하는데 어떻게 사용할 수 있나요 /etc/heat/heat.conf
?
기본 섹션에 새 행을 추가하고 싶습니다.
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
답변1
/regexp/
주소를 사용 하여 포함된 행을 찾은 [DEFAULT]
다음 추가( a
) 명령을 사용하여 그 아래에 행을 추가할 수 있습니다. 파일을 그 자리에서 수정하려면 에 -i
전달 합니다 . (올바른 작업을 수행하는지 확인하기 위해 먼저 실행하지 않고 실행하고 싶을 수도 있습니다. 실제로 변경하지 않고 변경된 파일이 어떻게 보이는지 출력합니다):sed
# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf
답변2
/tmp/a
contnet이 포함된 파일이 있는 경우
hello my friend
sed를 사용하여 문자열을 바꿀 수 있습니다.
sed -i 's/hello/hi/g' /tmp/a
결과는 다음과 같습니다.
hi my friend
바라보다:man sed
sed
다음 명령을 사용하여 파일에 누락된 줄을 추가 할 수도 있습니다 >>
.
echo "I like you">>/tmp/a
답변3
요청자가 지금쯤 해결책을 찾았을 것이라고 확신합니다. 하지만 만일의 경우에 대비해서요.
이 요청은 모든 주요 Linux 버전에서 사용할 수 있는 crudini 애플리케이션에 이상적입니다. 예를 들어 DEFAULT
다음 섹션에 한 줄을 추가 합니다./etc/heat/heat.conf
crudini --set /etc/heat/heat.conf DEFAULT mysetting true
이 부분:
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
mysetting = true
conf 파일에 이미 항목이 있으면 업데이트됩니다.
답변4
옛날 ed
방식
ed -s test <<EOF
/^\[DEFAULT\]$/
a
rabbit_host =controller
rabbit_password =RABBIT_PASS
.
w
q
EOF