使用 awk&cut 进行字符文本处理

为分析程序的访存规律,使用 fprintf 方法打印了每次访存时的内存地址,形成了数千行 0x... 开头的 12 位地址信息,要在 excel 中处理这些地址需要将 0x 及地址的前三位去掉,一是因为所有地址的前三位均相同,二是 excel 的转换函数 hex2dec() 无法处理8位以上的 16 进制数。

主要变换过程为:0x2b9711fe5de0 --> =HEX2DEC("711fe5de0")

这样将文本直接粘贴到 excel 中即变成十进制数。


cat mem_addr_1read.txt | cut -c 6- > cut_addr.txt
使用上述命令截取地址第6位以后的字符,将 0x 及前 3 位去掉,并重定向到 cut_addr.txt 文件中。
0x2b9711fe5de0 --> 711fe5de0

$ cat cut_addr.txt | awk '{ sub(/^/,"=HEX2DEC(\""); print}' > hex2dec.txt
使用上述命令将字符串首部分添加到文本中。
711fe5de0 --> =HEX2DEC("711fe5de0

cat hex2dec.txt | awk '{ sub(/$/,"\")"); print}' > excel_ready.txt
使用上述命令将字符串尾部分添加到文本中。
=HEX2DEC("711fe5de0 --> =HEX2DEC("711fe5de0")


因为原文本文件已是一行一个内存地址,所以将文件内容全选复制,直接粘贴到 excel 即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值