我有一个带(空格分隔)数字的日志文件。问题是文件对于autoit来说太大了(1gig文件,内存问题),我看到了一些python魔法。
我想
1 2 3 4 5 6 7 8 9
1 2 3 A 7 8 9
目前我的regExp是
StringRegExpReplace($line, "(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s", "$1 $2 $3 0 $7 $8 $9")
答案 0 :(得分:2)
Assuming Windows, I'd probably grab a copy of gawk并且比python麻烦少得多。
c:\gawk '{print $1 " " $2 " " $3 " added " $7 " " $8 " " $9}' bigfile.log >> outputfile.log
免责声明:我没有Windows机器来测试它,但它可以在我正在使用的Linux机器上运行...
答案 1 :(得分:2)
无论如何,这是一个Python解决方案:
with open('filename', 'rb') as infile:
with open('filename.out', 'wb') as outfile:
for j, line in enumerate(infile):
if j == 0: #skip first line
continue
listLine = line.split(' ')
listLine.insert(3, thingToInsert) #elements 4-6 are now elements 5-7
listLine = (el for i, el in enumerate(listLine) if i>4 and i<=7)
outfile.write(' '.join(listLine))
这将非常快,并且不需要太多RAM,因为它逐行读取和写入文件。