2016-12-22 5 views
0

シェルでは、プロパティファイル内のプロパティ名と値を逆にする方法がありますか(できれば1行コマンドが必要です)。私はJavaや他のプログラミング言語でこれを行うことができると思っていますが、他の言語に依存することなくスクリプトの一部として簡単に使うことができます。プロパティの名前と値を反転する

入力ファイル(input.properties):

var1=foo 
var2=bar 
var3=hello world 

出力ファイル(output.properties):output.propertiesへ

foo=var1 
bar=var2 
hello world=var3 

答えて

1
awk 'BEGIN{OFS=FS="="} {print $2,$1}' input.properties >output.properties 

出力:

 
foo=var1 
bar=var2 
hello world=var3 

参照:GNUと8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

+0

を早かった。私はそれを試して、それがうまくいけば受け入れるでしょう:) 'file'を' input.properties'に変更し、 'output.properties'のようなものを追加したいかもしれません。 –

+0

私は自分の答えを更新しました。 – Cyrus

+0

'awk -F = '{print $ 2" = "$ 1}" input.properties> output.properties'これは質問の中の名前と一致します。 –

1

はsedを:

sed -r 's/(.*)=(.*)/\2=\1/' input.properties > output.properties 
2

を。これは、外部プログラム起動しない成功する「純粋なbashの」ソリューションです:

while IFS== read k v; do echo $v=$k; done <input.properties >output.properties 
関連する問題