我有来自Cisco ASA的以下配置:
for el in "${u_vals[@]}"; do
awk -F\| -v q=\" -v j="$el" '
NR > 1 {
if ($7 == j) {
for (i = 8; i <= NF; ++i) {
gsub(/"/,"",$i);
sum[i] += $i;
}
}
++count;
};
END {
printf("%s","output" FS j FS q count q);
for (i = 8; i <= NF; ++i)
printf("%s",FS sum[i]);
printf("\n");
};
' head_datafile_pipe_deleimiter_more_columns.csv;
done| cat -n;
## 1 output|"$29.95 Plan"|"9"|42.8136|2|2|0|0|0
## 2 output|"$39.95 Plan"|"9"|170.417|2|2|2|0|0
## 3 output|"$49.95 Carryover Plan"|"9"|45.9627|1|1|0|0|0
## 4 output|"$49.95 Plan"|"9"|18.2649|1|1|0|0|0
## 5 output|"$89.95 Plan"|"9"|16.6353|1|1|0|0|0
## 6 output|"PREPAY PLUS - TRIAL - #16"|"9"|0|0|0|0|0|0
## 7 output|"PREPAY PLUS - $0 -"|"9"|31.8071|1|1|0|0|0
我希望结果看起来像列表或CSV格式:
access-list OUTSIDE extended permit tcp any object O-10.1.2.230 eq 9091
access-list OUTSIDE extended permit tcp any object O-10.1.2.241 eq pptp
for open in line(“file.txt”):
如果“访问列表”在行中:
print line.split()
打印类型(行)
谢谢!
答案 0 :(得分:0)
请检查这是否有用。
import csv
import sys
#Open both files and get handles.
config_file = open("out.txt" ,'r')
csv_file = open("result.csv",'w')
#
try:
writer = csv.writer(csv_file)
#Write titles in csv file
csv_head_list = ['rule number', 'permit/deny', 'protocol', 'source IP', 'source port', 'des ip', 'des port']
writer.writerow( csv_head_list )
rule_num = 0
#Read file line by line
for line in config_file.readlines():
line=line.strip()
#Check "access-list" in line
if "access-list" in line:
tmp_list = line.split()
rule_num = rule_num + 1
permit_deny = str(tmp_list[3])
protocol = str(tmp_list[4])
src_ip = src_port = str(tmp_list[5])
des_ip = str(tmp_list[7]).replace("O-",'')
des_port = str(tmp_list[9])
#Write data in csv file
csv_data_list =[rule_num, permit_deny, protocol, src_ip, src_port, des_ip, des_port]
writer.writerow( csv_data_list)
csv_data_list = []
except Exception, e:
print str(e)
finally:
config_file.close()
csv_file.close()