【发布时间】:2014-04-28 20:56:27
【问题描述】:
我有一个长达数百万行的大文本文件。在所有这些行之间,有如下数据块:
#Start of activity on <hostname>
....
....
....
....
#End of activity on <hostname>
在每个数据块之间,有很多我不感兴趣的垃圾数据行。上面显示的数据块随机出现在大文本文件中。我要做的是将每个数据块移动到以块中的主机名标记作为文件名的单独文件。 此外,在操作结束时,大文件应该只有垃圾行,并且应该没有任何块。
我目前拥有的是这样的:
awk '/Start\sof\sactivity\son/{f=1;s="FILE"++i;next}/End\sof\sactivity\son/{f=0; close(s)}f{print > s}' bigfile
但它不会将其分类到以文件名作为主机名的文件中,也不会删除选定的行。 任何方式都可以使用 perl、awk、sed、grep 或 python 来完成?
编辑:
对于 Jaypal ..主机名现在在开头,并且仅在块的开头句子中..块如下:
SGSGSINCQ14FWR52B#start of activity
........
........
........
#end of activity
【问题讨论】:
-
谁投了反对票,我至少可以知道原因吗??投反对票并不酷!!