开发者

TCL script - Extracting only Hex values from Hexdump file and copying it to a new file

00000010- 00 11 50 44  00 00 00 00  00 00 00 00  00 11 58 44 [..PD..........XD]
00000011- 00 00 00 00  00 00 00 00  00 11 80 44  00 00 00 00 [...........D....]
00000012- 00 00 00 00  00 11 88 44  00 00 00 00  00 00 00 00 [.......D........]
00000013- 00 11 90 44  00 00 00 00  00 00 00 00  00 11 98 44 [...D...........D]
00000014- 00 00 00 00  00 00 00 00  00 11 C0 44  00 00 00 00 [...........D....]

Need to extract the hex values mentioned below and copy it to a new 开发者_Go百科file -

00 11 50 44  00 00 00 00  00 00 00 00  00 11 58 44 00 00 00 00  00 00 00 00  00 11 80 44  00 00 00 00 00 00 00 00  00 11 88 44  00 00 00 00  00 00 00 00 00 11 90 44  00 00 00 00  00 00 00 00  00 11 98 44 00 00 00 00  00 00 00 00  00 11 C0 44  00 00 00 00


Assuming you've got all your hex data in a variable called $input, you can get a list of hex digits like this:

foreach line [split $input \n] {
    foreach c [scan $line %*x-%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x] {
        if {$c ne ""} {
            lappend out [format %x $c]
        }
    }
}

After that, $out contains a list of hex digits. Use it wisely.


Here is another approach, which makes the following assumptions:

  1. Each line starts with an offset, which we can discard
  2. Also, each line ends with an ASCII presentation, which we also discard
  3. That means, for each line, we only take items 1 .. end-1
  4. That the variable $input holds many lines of hex dump

Without further ado:

set hexList {}
foreach line [split $input "\n"] {
    set hexList [concat $hexList [lrange $line 1 16]]
}   
puts $hexList; # hexList now contains all the hex digits


My TCL is a bit rusty but a very naive approach would be:

# Parse all hex numbers from your input variable into hexList
set hexList [regexp -all -inline -- {\d{2}(?:\s{1,2})} $input]
# Replace some spaces to get the expected output and store it into hexData
regsub -all -- {\s{3}} [join $hexList] { } hexData
# Write hexData into your file..
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜