쉘 스크립팅을 사용하여 /etc의 파일을 편집하시겠습니까?

쉘 스크립팅을 사용하여 /etc의 파일을 편집하시겠습니까?

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/acontnet이 포함된 파일이 있는 경우

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

관련 정보