如何使用sed通过节名获取ini文件的一部分。棘手的部分是节名可能有文件路径。
我的ini示例:
[SECTION]
ANYkey=value1
ANYkey2=value2
[test/foo/file.txt]
key=value1
key2=value2
[test/foo/file2.txt]
key3=value3
key4=value4
字符串
检索ini节[test/foo/file.txt]的数据时出现问题
sed或awk之后的预期输出:
key=value1
key2=value2
型
我已经在下面编码以使用下面的代码获取[SECTION]部分
sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' -e 's/#.*$//' -e 's/[[:space:]]*$//' -e 's/^[[:space:]]*//' -e "s/^\(.*\)=\([^\"']*\)$/\1=\"\2\"/" < file.ini | sed -n -e "/^\[SECTION\]/,/^\s*\[/{/^[^#].*\=.*/p;}"
型
使用sed获取输出,如
ANYkey=value1
ANYkey2=value2
型
但由于文件路径([test/foo/file.txt]之间的斜线),此逻辑不适用于其他部分
3条答案
按热度按时间cpjpxq1n1#
awk
程序以获得所需的输出时,应使用。字符串
按如下方式运行脚本,输出将为:
型
awk
程序本身的路径细节时,应该使用。型
或
型
型
根据您所展示的样品,请尝试以下操作。当需要打印
[
之后的任何部分时,应使用。型
以上说明:
型
odopli942#
字符串
ie3xauqp3#
此解决方案仅使用sed和bash在.ini节中选择一个值。
字符串
为了简单起见,我做了一些假设:
型