私はPythonでログファイルを処理するスクリプトを持っています-それは値を解析し、それらを単純に。で結合しますtab
。
p = re.compile(
"([0-9/]+) ([0-9]+):([0-9]+):([0-9]+) I.*"+
"worker\\(([0-9]+)\\)(?:@([^]]*))?.*\\[([0-9]+)\\] "+
"=RES= PS:([0-9]+) DW:([0-9]+) RT:([0-9]+) PRT:([0-9]+) IP:([^ ]*) "+
"JOB:([^!]+)!([0-9]+) CS:([\\.0-9]+) CONV:([^ ]*) URL:[^ ]+ KEY:([^/]+)([^ ]*)"
)
for line in sys.stdin:
line = line.strip()
if len(line) == 0: continue
result = p.match(line)
if result != None:
print "\t".join([x if x is not None else "." for x in result.groups()])
ただし、スクリプトの動作は非常に遅く、データの処理には長い時間がかかります。
どうすれば同じ動作をより速く達成できますか?Perl / SED / PHP / Bash / ...?
ありがとう