쉘 스크립트를 사용하여 /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

관련 정보