2023年8月2日发(作者:)
Shell脚本------解析elf⽂件及awk基本使⽤1.读elf⽂件arm-eabi-nm *.字符判断 及 if语句运算符赋值运算符= += -= *= /= %= ^= **=逻辑运算符||&&正则运算符~ ~!关系运算符< <= > >= != ==算术运算符+ -* / &+ - !^ ***++ --其它运算符$空格:in描述赋值语句逻辑或逻辑与匹配正则表达式和不匹配正则表达式关系运算符加,减乘,除与求余⼀元加,减和逻辑⾮求幂增加或减少,作为前缀或后缀字段引⽤字符串连接符C条件表达式数组中是否存在某键值in运算符数组中是否存在某键值描述[cpp]1. awk -F " " '
2. {
3. if(""$2""~/T/)
4. printf("%x, %s, %sn", ""$1"", ""$2"", ""$3"");
5. }
6.
7. '
awk -F " " ' { if(""$2""~/T/) printf("%x, %s, %sn", ""$1"", ""$2"", ""$3""); }'
打印16补齐空位[cpp]1. #!bin/sh
2. arm-eabi-nm |
3.
4. awk -F " " '
5. {
6. if(""$2""~/T/)
7. printf("0x%08x, %s, %sn", ""$1"", ""$2"", ""$3"");
8. }
9.
10. '
#!bin/sharm-eabi-nm |awk -F " " ' { if(""$2""~/T/) printf("0x%08x, %s, %sn", ""$1"", ""$2"", ""$3""); }'实现16进制加法[cpp]1. #!bin/sh
2. arm-eabi-nm |
3.
4. awk -F " " '
5. {
6. if(""$2""~/T/)
7. printf("%d, %s, %sn", ""$1+1"", ""$2"", ""$3"");
8. else
9. printf("%d, %s, %sn", ""$1"", ""$2"", ""$3"");
10. }
11.
12. '
#!bin/sharm-eabi-nm |awk -F " " ' { if(""$2""~/T/) printf("%d, %s, %sn", ""$1+1"", ""$2"", ""$3""); else printf("%d, %s, %sn", ""$1"", ""$2"", ""$3""); }'
计数[cpp]1. #!bin/sh
2. arm-eabi-nm |
3.
4. awk -F " " '
5. {
6. if(""$2""~/T/)
7. printf("%d %s %sn", ""$1+1"", ""$2"", ""$3"");
8. else
9. printf("%d %s %sn", ""$1"", ""$2"", ""$3"");
10. }
11.
12. '|
13.
14. awk -F " " '
15. BEGIN{i=0;}
16. {
17. i++;
18. printf("{0x%08x, %s},n", ""$1"", ""$3"");
19. }
20. END{printf("i=%dn",i)}
21.
22. '
#!bin/sharm-eabi-nm |awk -F " " ' { if(""$2""~/T/) printf("%d %s %sn", ""$1+1"", ""$2"", ""$3""); else printf("%d %s %sn", ""$1"", ""$2"", ""$3""); }'|awk -F " " ' BEGIN{i=0;} { i++; printf("{0x%08x, %s},n", ""$1"", ""$3""); } END{printf("i=%dn",i)}'补充:%d ⼗进制有符号整数
%u ⼗进制⽆符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X ⽆符号以⼗六进制表⽰的整数
%0 ⽆符号以⼋进制表⽰的整数
%g ⾃动选择合适的表⽰法
n 换⾏
f 清屏并换页
r 回车
t Tab符
xhh 表⽰⼀个ASCII码⽤16进表⽰,其中hh是1到2个16进制数
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690917006a462948.html
评论列表(0条)