正则表达式 – 从文本文件中获取数据
发布时间:2020-12-14 05:36:54 所属栏目:百科 来源:网络整理
导读:我正在尝试使用以下结构从文本文件中提取数据: Employee: John C. 2013-01-01 10 $123 2013-01-02 12 $120 2013-01-03 8 $150Employee: Michael G. 2013-01-01 5 $13 2013-01-05 11 $20 2013-01-10 2 $155 如您所见,模式是一个包含Employee名称的表头,然后
我正在尝试使用以下结构从文本文件中提取数据:
Employee: John C. 2013-01-01 10 $123 2013-01-02 12 $120 2013-01-03 8 $150 Employee: Michael G. 2013-01-01 5 $13 2013-01-05 11 $20 2013-01-10 2 $155 如您所见,模式是一个包含Employee名称的表头,然后是包含其所有事务的表内容,然后重复模式. 要提取交易,我这样做: awk '/^ [A-Z]/{print $1"t"$2"t"$3}' 这给出了这个结果: 2013-01-01 10 $123 2013-01-02 12 $120 2013-01-03 8 $150 2013-01-01 5 $13 2013-01-05 11 $20 2013-01-10 2 $155 如何创建一个返回此的两遍提取: 2013-01-01 10 $123 John C. 2013-01-02 12 $120 John C. 2013-01-03 8 $150 John C. 2013-01-01 5 $13 Michael G. 2013-01-05 11 $20 Michael G. 2013-01-10 2 $155 Michael G. 解决方法
awk的一种方法:
awk -F":" '/^Employee/{a=$NF;next}{print $0,a}' file 测试: $cat file Employee: John C. 2013-01-01 10 $123 2013-01-02 12 $120 2013-01-03 8 $150 Employee: Michael G. 2013-01-01 5 $13 2013-01-05 11 $20 2013-01-10 2 $155 $awk -F":" '/^Employee/{a=$NF;next}{print $0,a}' file 2013-01-01 10 $123 John C. 2013-01-02 12 $120 John C. 2013-01-03 8 $150 John C. 2013-01-01 5 $13 Michael G. 2013-01-05 11 $20 Michael G. 2013-01-10 2 $155 Michael G. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |