我有一个 CSV 文件,它是使用 Check Point 防火墙策略中的 HTML 导出创建的。在某些情况下,每条规则都表示为几行。当规则具有多个地址源、目的地或服务时,就会发生这种情况。我需要输出仅在一行中描述每个规则。很容易区分每条规则的开始时间。在第一列中,有规则 ID,它是一个数字。
这是一个例子。绿色标记了应该移动的字符串:
http://i.imgur.com/i785sDi.jpg
让我给你看一个例子:
NO.;NAME;SOURCE;DESTINATION;SERVICE;ACTION;
1;;fwgcluster;mcast_vrrp;vrrp;accept;
;;;;igmp;;
2;Testing;fwgcluster;fwgcluster;FireWall;accept;
;;fwmgmpe;fwmgmpe;ssh;;
;;fwmgm;fwmgm;;;
我需要的,用伪代码解释,是这样的:
阅读下一行的第一列。如果有数字:计算下一行的第一列。如果那里没有数字,则将此行列中的字符串与最后一个连接(用逗号分隔)\ 并消除当前行中的文本
输出应该是这样的:
NO.;NAME;SOURCE;DESTINATION;SERVICE;ACTION;
1;;fwgcluster;mcast_vrrp;vrrp-igmp;accept;
;;;;;;
2;Testing;fwgcluster-fwmgmpe-fwmgm;fwgcluster-fwmgmpe-fwmgm;FireWall-ssh;accept;
;;;;;;
The empty lines are there only to be more clear, I don't actually need them.
谢谢!