2010-05-13 41 views
1

我需要格式化一些hexdump都可以是这样的:入门法

00010: 02 03 04 05 
00020: 02 03 04 08 
00030: 02 03 04 08 

00010: 02 03 04 05 
00020: 02 03 04 05 
02 03 04 05 
02 03 04 08 
‍ 

02 03 04 05 
02 03 04 08 
02 03 04 
02 03 04 05 
02 03 04 05 
02 03 04 05 
02 03 04 
  • 删除地址字段,如果存在

  • 删除任何08一段的结尾(后跟一个空行)

  • 删除使用lex任何空行

如何才能做到这一点?谢谢!

回答

1

它不能直接使用lex来完成。 Lex是一个标记器,而不是解析器。

诚实地说,它可以使用正则表达式来完成,并且不需要扫描器生成器+解析器生成器的复杂性。

+0

同意,法可能比你更多的工具需要这样的东西。 – 2010-05-13 16:50:58

1

如果在整个文件作为一个字符串发出声音,我想这些正则表达式会做你想做的(书面的Perl,但没有测试):

s/^\d{4}: //mg 
s/ 08\n\s*\n/\n/g 
s/^\s*$//mg