-
原文本
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hfe
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hdf
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hf5
size 32 dfjk 'h80 'hff
size 32 dfjk 'h80 'hff每行最后还有空白字符。
-
目标:得到最后的2位16进制数据
ff
ff
fe
ff
ff
ff
df
ff
ff
ff
f5
ff
ff -
python代码
import re
import sys
def main():
#compile一个正则表达式,用于过滤出最后两位16进制数据
get_hex_data = re.compile(r"'h([0-9a-fA-F]{2})\s*$")
#从命令行参数得到原文件与目标文件名名称
src_file = sys.argv[1]
dest_file = sys.argv[2]
#打开原文件,一行一行读,得到目标数据,一行一行写往目标文件
with open(src_file, "r") as fh_r:
with open(dest_file, "w") as fh_w:
for read_line in fh_r:
#调用group(1)得到第一个括号分组内容
fh_w.write(get_hex_data.search(read_line).group(1)+"\n")
if (__name__ == "__main__"):
main()
- 执行脚本
若原文件叫a.txt,目标文件叫b.txt,python脚本叫get_hex_data。
./get_hex_data a.txt b.txt