2012-02-16 7 views
1

被験者が言うように、私はbashを使って構成ファイルを更新する良い方法を考え出しています。計画はパターンを探し、#でマッチする前に新しい文字列を挿入することです。例えば、前Bash、パターンを探して、#とマッチする前に新しい文字列を挿入

ファイル:

key1=value1 
key2=value2 
key3=value3 

KEY2を更新するためのバッシュ、後KEY2 =テスト

ファイルを作る:

key1=value1 
#key2=value2 
key2=test 
key3=value3 

答えて

2

ここ

#!/bin/bash 
sed -i -r -e "s/^($2)=(.*)$/#$2=\2\n$2=$3/" $1 

ことを行うにはbashスクリプトです

あなたその後、あなたの例を実行するには、このようにそれを使用することができます。

./update configfile key2 test 
2
 
$ sed '/key2/{ s/^/#/; a\ 
key2=test 
}' input 
0

それはあなたがawk

awk '$0 ~ key{$0="#" $0 "\n" key "test"}1' key="key2=" infile 
0

でそれを行うまで、これはあなたのために働くかもしれない政党ではありません。

cat <<! >changes.txt 
> key2=test 
> ! 
sed 's|\([^=]*\).*|/^\1/s/.*/#\&\\n&/|' changes.txt | sed -i -f - file 
cat file 
key1=value1 
#key2=value2 
key2=test 
key3=value3 
関連する問題