GNU/Linux >> Linux の 問題 >  >> Linux

sed を使用して構成ファイルの変数を置き換える方法は?

この sed を試すことができます:

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

以下が得られます:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6

質問に回答が追加されていますが。私はそれがどのように機能するかについて少し時間を費やしました.いくつかの事実と私のバージョンの答えを追加したいと思います.

sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg

説明:

  • sed 's/find_this/replace_with/'の基本として 、検索して置換する sed と言っています。また、 / の代わりに使用できる区切り文字が他にも複数あることを覚えておいてください .こちら ,
  • ここで、^\(THISISMYVARIABLE[ ]*=\).* に一致する行を見つけます .これは、マッチ THISISMYVARIABLE[ ]*= をグループ化していることを意味します . ([ ]* キーの後にスペースがある場合にカバーするため)
  • 置換セクション \1 内 後方参照です。一致に使用した正規表現の最初のグループを参照しています。

次のように言えます:

sed '/^VAR5=/s/=.*/=VALUE10/' filename

その場でファイルに変更を加えるには 、 -i を使用します オプション:

sed -i '/^VAR5=/s/=.*/=VALUE10/' filename

Linux
  1. ファイル内の文字列を置き換える方法は?

  2. sed のようなテキストを python に置き換えるにはどうすればよいですか?

  3. sed を使用してファイルの最後の n 行を削除する方法

  1. Sedを使用して複数行の文字列を置き換える方法は?

  2. SedまたはExを使用してブロック(複数行コード)を新しいテキストブロック(コード)に置き換える方法は?

  3. Vimでファイルタイプを使用する方法は?

  1. chmodを使用してファイルのパーミッションを変更するにはどうすればよいですか?

  2. sed:見つかった場合は行を置き換えるか、見つからない場合はファイルの最後に追加する方法は?

  3. 文字を再帰的にsedに置き換える方法は?