一个框架,使您编写脚本,就好像它们是用awk编写的一样。
PyAwk的Python项目详细描述
您只需创建一个脚本文件并创建一个扩展pyawk类的类,然后编写一些类似awk的过程。
有一些关于https://github.com/hideshi/PyAwk的例子。
要求
- python 3.3或更高版本
功能
- 开始和结束语法,在执行过程中只调用一次。
- 开始文件和结束文件语法,每个文件只调用一次。
- awk特定的有效性,如filename、fs、ofs、rs、ors、nf、nr、fnr、fieldwidths。
- 命令行选项,如调试模式,设置有效性。
- sqlite3查询。
设置
$ pip install PyAwk
历史记录
0.1.0(2014-02-21)
- 首次发布
示例
这是ltsv格式数据的解析器。 http://ltsv.org
#!/usr/bin/env python3.3frompyawkimportPyAwk,pclassLTSVParser(PyAwk):defbegin(self):self.FS='\t'self.count=0defaction(self,S):ifnotp(S[0],r'status:200'):self.count+=1self.print('----------')d={}foreleminS[1:]:key,value=elem.split(':',1)d[key]=valueself.print(d)defend(self):self.print('----------')self.print('Total:{}'.format(self.NR))self.print('Matched:{}'.format(self.count))if__name__=='__main__':LTSVParser().run()
然后可以用ltsv文件执行这个脚本。
$ ./ltstparser.py ltsv.log