我有一个下面的属性文件,并想如下所述解析它。请帮忙做这件事。
我创建的 .ini 文件:
[Machine1]
app=version1
[Machine2]
app=version1
app=version2
[Machine3]
app=version1
app=version3
我正在寻找一个解决方案,其中应该像解析 ini 文件一样
[Machine1]app = version1
[Machine2]app = version1
[Machine2]app = version2
[Machine3]app = version1
[Machine3]app = version3
谢谢。
最佳答案
尝试:
$ awk '/\[/{prefix=$0; next} $1{print prefix $0}' file.ini
[Machine1]app=version1
[Machine2]app=version1
[Machine2]app=version2
[Machine3]app=version1
[Machine3]app=version3
这个怎么运作
/\[/{prefix=$0; next}
如果任何行以
[
开头,我们将该行保存在变量 prefix
中然后我们跳过其余的命令并跳转到 next
线。 $1{print prefix $0}
如果当前行不为空,我们打印前缀,后跟当前行。
添加空格
在任何出现的
=
周围添加空格:$ awk -F= '/\[/{prefix=$0; next} $1{$1=$1; print prefix $0}' OFS=' = ' file.ini
[Machine1]app = version1
[Machine2]app = version1
[Machine2]app = version2
[Machine3]app = version1
[Machine3]app = version3
这通过使用
=
起作用作为输入和 =
上的字段分隔符作为输出的字段分隔符。
关于bash - 在 bash 中解析 .ini 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399984/