在shell中,有没有办法(最好用一行命令)允许我反转属性文件中的属性名称和值?我想我可以用Java或其他编程语言来做这件事,但是想要一些我可以很容易地用作脚本的一部分而不依赖于其他语言的东西。
输入文件(input.properties
):
var1=foo
var2=bar
var3=hello world
输出文件(output.properties
):
foo=var1
bar=var2
hello world=var3
答案 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