sed
ファイルを編集するにはどうすればいいですか/etc/heat/heat.conf
?
デフォルトセクションの下に新しい行を追加したい
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
答え1
アドレスを使用し/regexp/
て を含む行を見つけ[DEFAULT]
、次に append( a
) コマンドを使用してその下に行を追加することができます。 を に渡すと、-i
そのsed
場でファイルが変更されます (正しく動作していることを確認するために、最初に を使わずに実行することをお勧めします。変更されたファイルが実際に変更されることなくどのように見えるかを出力します)。
# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf
答え2
/tmp/a
コンテンツを含むファイルがある場合
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
リクエスト者はもう解決策を見つけていると思いますが、念のため。
このリクエストは、アプリケーションcrudiniに最適です。これは、すべての主要なLinuxディストリビューションで利用可能です。たとえば、次の行は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