Hi guys. I have a CSV file, which I created using an HTML export from a Check Point firewall policy. Each rule is represented as several lines, in some cases. That occurs when a rule has several address sources, destinations or services. I need the output to have each rule described in only one line. It's easy to distinguish when each rule begins. In the first column, there's the rule ID, which is a number.
Let me show you an example: NO.;NAME;SOURCE;DESTINATION;VPN ;SERVICE;ACTION;TRACK;INSTALL ON;TIME;COMMENT 1;;fwxcluster;mcast_vrrp;;vrrp;accept;Log;fwxcluster;Any;"VRRP;;*Comment suppressed* ;;;;;igmp**;;;;; 2;;fwxcluster;fwxcluster;;FireWall;accept;Log;fwxcluster;Any;"Management FWg;*Comment suppressed* ;;fwmgmpe**;fwmgmpe**;;ssh**;;;;; ;;fwmgm**;fwmgm**;;;;;;; 3;NTP;G_NTP_Clients;cmm_ntpserver_pe01;;ntp;accept;None;fwxcluster;Any;*Comment suppressed* ;;;cmm_ntpserver_pe02**;;;;;;; What I need ,explained in pseudo code, is this: Read the first column of the next line. If there's a number: Evaluate the first column of the next line. If there's no number there, concatenate (separating with a comma) \ the strings in the columns of this line with the last one and eliminate the text in the current one The output should be something like this: NO.;NAME;SOURCE;DESTINATION;VPN ;SERVICE;ACTION;TRACK;INSTALL ON;TIME;COMMENT 1;;fwxcluster,fwmgmpe**,fwmgm**;mcast_vrrp,fwmgmpe**,fwmgm**;;vrrp,ssh**;accept;Log;fwxcluster;Any;*Comment suppressed* ;;;;;;;;;; ;;;;;;;;;; 3;NTP;G_NTP_Clients;cmm_ntpserver_pe01,cmm_ntpserver_pe02**;;ntp;accept;None;fwxcluster;Any;*Comment suppressed* ;;;;;;;;;; The empty lines are there only to be more clear, I don't actually need them. Thanks! -- https://mail.python.org/mailman/listinfo/python-list