反转属性名称和值

时间:2016-12-22 19:44:53

标签: linux bash shell properties

在shell中,有没有办法(最好用一行命令)允许我反转属性文件中的属性名称和值?我想我可以用Java或其他编程语言来做这件事,但是想要一些我可以很容易地用作脚本的一部分而不依赖于其他语言的东西。

输入文件(input.properties):

var1=foo
var2=bar
var3=hello world

输出文件(output.properties):

foo=var1
bar=var2
hello world=var3

3 个答案:

答案 0 :(得分:2)

这是一个“纯粹的bash”解决方案,成功调用无外部程序:

while IFS== read k v; do echo $v=$k; done  <input.properties >output.properties

答案 1 :(得分:1)

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

输出到output.properties:

foo=var1
bar=var2
hello world=var3

请参阅:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

答案 2 :(得分:1)

使用GNU sed:

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