我有一个NAT设备可以像这样制作NAT日志:
Dec 13 18:12:59 172.16.1.1 "LSN_DELETE""192.168.100.1%101:11921""TCP""100.100.100.100%101:11921""104.111.224.226:80""1481639868477""327573"
我想通过将此文件的每一行转换为:
来制作csv文件192.168.100.1,11921,TCP,100.100.100.100,11921,104.111.224.226,80,1481639868477,327573
我知道我可以逐行读取文件并使用cut命令转换它,但是逐行读取文件非常慢并且文件非常大(500万行)。我想通过更快的awk或sed转换它。有人可以帮我这么做吗?
答案 0 :(得分:1)
在awk中,部分解决方案(您必须按照自己喜欢的顺序添加字段):
gawk -F '[^.[:digit:][:alpha:]]*' -v OFS=, '{print $9,$15,$12}' file
即,假设日志位于名为file
的文件中:
无法保证这比你之前做的更快。