【发布时间】:2019-10-02 15:54:47
【问题描述】:
类似于my previous question,但在配置文件示例中添加了其他项目。
我有一个配置文件,其中包含重复的行组(但组中的行数不同),我想将其组合到单个 csv 行以便更轻松地导入数据库。 (数据库结构灵活)。
# Example:
lag 1
description "LAG-1 GOES TO LAG-2"
port 1/2/1
port 1/2/2
port 3/2/3
lacp active administrative-key 32770
exit
lag 10
description "REMOVED-LAG-10-0.0.0.0"
port 4/1/1
port 5/1/1
lacp active administrative-key 32771
exit
lag 11
description "REMOVED-LAG-11-4.4.4.4"
port 5/1/2
lacp active administrative-key 32772
exit
我最终需要为“lag”和“exit”之间的每个块使用逗号分隔的行,如下所示:
1,"LAG 1 GOES TO LAG-2",32770,1/2/3
1,"LAG 1 GOES TO LAG-2",32770,1/2/2
1,"LAG 1 GOES TO LAG-2",32770,3/2/3
10,"REMOVED-LAG-10-0.0.0.0",32771,4/1/1
10,"REMOVED-LAG-10-0.0.0.0",32771,5/1/1
11,"REMOVED-LAG-11-4.4.4.4",32772,5/1/2
然后我会导入这样的表:
lag-id | description | key | port
我尝试了在这里找到的各种 awk one-liners,例如:
awk -v RS="lag" 'NR>1{$1=$1; print RS, $0}'
但这似乎会垂直压缩线条,所以我最终得到了
exit 3/2/3 "LAG 1 GOES TO LAG-2"
exit 4/2/3 "LAG 10 GOES TO LAG-3"
exit 4/1/1 "LAG 11 GOES TO LAG-21"
【问题讨论】:
-
能否请您检查一下我的答案并告诉我这是否有帮助?