2010-05-13 65 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