`
chinamming
  • 浏览: 151177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Shell脚本------解析elf文件及awk基本使用

 
阅读更多

1.读elf文件


arm-eabi-nm *.elf



2.awk字符判断 及 if语句


运算符 描述
赋值运算符
= += -= *= /= %= ^= **= 赋值语句
逻辑运算符
|| 逻辑或
&& 逻辑与
正则运算符
~ ~! 匹配正则表达式和不匹配正则表达式
关系运算符
< <= > >= != == 关系运算符
算术运算符
+ - 加,减
* / & 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
其它运算符
$ 字段引用
空格 字符串连接符
?: C条件表达式
in 数组中是否存在某键值

  1. awk-F""'
  2. {
  3. if(""$2""~/T/)
  4. printf("%x,%s,%s\n",""$1"",""$2"",""$3"");
  5. }
  6. '



3.awk打印16补齐空位


  1. #!bin/sh
  2. arm-eabi-nm1.test.axf|
  3. awk-F""'
  4. {
  5. if(""$2""~/T/)
  6. printf("0x%08x,%s,%s\n",""$1"",""$2"",""$3"");
  7. }
  8. '




4.awk实现16进制加法


  1. #!bin/sh
  2. arm-eabi-nm1.test.axf|
  3. awk-F""'
  4. {
  5. if(""$2""~/T/)
  6. printf("%d,%s,%s\n",""$1+1"",""$2"",""$3"");
  7. else
  8. printf("%d,%s,%s\n",""$1"",""$2"",""$3"");
  9. }
  10. '



5.awk 计数


  1. #!bin/sh
  2. arm-eabi-nm1.test.axf|
  3. awk-F""'
  4. {
  5. if(""$2""~/T/)
  6. printf("%d%s%s\n",""$1+1"",""$2"",""$3"");
  7. else
  8. printf("%d%s%s\n",""$1"",""$2"",""$3"");
  9. }
  10. '|
  11. awk-F""'
  12. BEGIN{i=0;}
  13. {
  14. i++;
  15. printf("{0x%08x,%s},\n",""$1"",""$3"");
  16. }
  17. END{printf("i=%d\n",i)}
  18. '





补充:


%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数


分享到:
评论

相关推荐

    Shell命令使用文档.doc

    以上仅是Shell命令使用文档中的一部分内容,实际上,Shell命令还包括很多其他功能强大的工具,如`grep`用于搜索文本模式,`sed`用于流编辑,`vi/vim`作为文本编辑器,以及各种文件管理命令如`cp`、`mv`和`rm`等。...

    Linux命令术语全称

    - **用途**:用于分隔字符串中的字段,常用于Shell脚本编程。 4. **LILO=LInux LOader** - **含义**:早期的Linux启动加载程序。 - **用途**:启动Linux系统。 5. **MySQL=My是最初作者女儿的名字,SQL=...

    使用gnu编译工具进行编译的外壳程序 msys (资源2.0)

    **标题与描述解析** 标题提及的是“使用gnu编译工具进行编译的外壳程序msys”,这指的是在Windows操作系统上,通过msys这个环境来运行GNU编译工具链,如gcc、g++等,以便在Windows环境下进行类似Linux的开发工作。...

    linux命令英文全称(帮助记忆,让命令变的很简单).pdf

    12. `IFS`:Internal Field Seperators - 内部字段分隔符,用于shell解析命令行参数。 13. `LILO`:LInux LOader - Linux引导加载器。 14. `MySQL`:My(作者女儿的名字)+ SQL(Structured Query Language) - 关系...

    cadence安装方法 linux

    这些命令用于安装基本的库和支持文件,例如 `libelf1` 用于处理 ELF 文件格式,`ksh` 为 Korn shell,是许多脚本的基础,而 `nscd` 则提供了对网络服务的支持。 ##### 2. 创建符号链接 为了确保 Cadence 正确识别...

    oracle11g-i386依赖包

    - **bash**:Bourne-Again SHell是Linux的默认shell,用于执行命令和脚本。 - **awk** 和 **sed**:文本处理工具,常用于配置文件的修改和数据处理。 4. **硬件兼容性和性能优化**: - **numactl**:帮助管理多...

    Linux术语全称文本下载

    12. **IFS (Internal Field Separators)**:内部字段分隔符,常用于shell脚本中对字符串进行分割。 13. **LILO (LInux LOader)**:早期的Linux启动加载程序。 14. **MySQL (MyŮ֣ SQL = Structured Query Language)...

    linux 命令英文全称

    ### Linux命令英文全称解析 Linux作为一款强大的开源操作系统,其命令行工具是进行系统管理、软件开发等工作的核心组成部分。对于初学者来说,理解这些命令的英文全称及其背后的含义,有助于更好地记忆和掌握它们的...

    宋劲彬的嵌入式C语言一站式编程

    6. Shell脚本的调试方法 32. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式 33. 信号 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 ...

    Linux命令全称,包括SQL等等

    41. **df=DiskFree**:显示文件系统的磁盘空间使用情况。 42. **diff=DIFFerence**:显示两个文件之间的差异。 43. **dmesg=diagnosticmessage**:显示内核启动时的诊断信息。 44. **du=DiskUsage**:显示文件或目录...

    自动化运维建设实践.pptx

    例如,Nginx的upstream配置可以通过shell脚本动态生成,以适应服务器IP和权重的变化,提升运维的灵活性和便捷性。 此外,建立流程化的部署机制,使用如Ansible这样的工具,可以确保部署的一致性和可靠性。配合健康...

Global site tag (gtag.js) - Google Analytics