1.读elf文件
arm-eabi-nm *.elf
2.awk字符判断 及 if语句
运算符
描述
赋值运算符
|
= += -= *= /= %= ^= **= |
赋值语句 |
逻辑运算符
|
|| |
逻辑或 |
&& |
逻辑与 |
正则运算符
|
~ ~! |
匹配正则表达式和不匹配正则表达式 |
关系运算符
|
< <= > >= != == |
关系运算符 |
算术运算符
|
+ - |
加,减 |
* / & |
乘,除与求余 |
+ - ! |
一元加,减和逻辑非 |
^ *** |
求幂 |
++ -- |
增加或减少,作为前缀或后缀 |
其它运算符
|
$ |
字段引用 |
空格 |
字符串连接符 |
?: |
C条件表达式 |
in |
数组中是否存在某键值 |
- awk-F""'
- {
-
if(""$2""~/T/)
-
printf("%x,%s,%s\n",""$1"",""$2"",""$3"");
- }
- '
awk -F " " '
{
if(""$2""~/T/)
printf("%x, %s, %s\n", ""$1"", ""$2"", ""$3"");
}
'
3.awk打印16补齐空位
- #!bin/sh
- arm-eabi-nm1.test.axf|
-
awk-F""'
- {
-
if(""$2""~/T/)
-
printf("0x%08x,%s,%s\n",""$1"",""$2"",""$3"");
- }
- '
#!bin/sh
arm-eabi-nm 1.test.axf |
awk -F " " '
{
if(""$2""~/T/)
printf("0x%08x, %s, %s\n", ""$1"", ""$2"", ""$3"");
}
'
4.awk实现16进制加法
- #!bin/sh
- arm-eabi-nm1.test.axf|
-
awk-F""'
- {
-
if(""$2""~/T/)
-
printf("%d,%s,%s\n",""$1+1"",""$2"",""$3"");
-
else
-
printf("%d,%s,%s\n",""$1"",""$2"",""$3"");
- }
- '
#!bin/sh
arm-eabi-nm 1.test.axf |
awk -F " " '
{
if(""$2""~/T/)
printf("%d, %s, %s\n", ""$1+1"", ""$2"", ""$3"");
else
printf("%d, %s, %s\n", ""$1"", ""$2"", ""$3"");
}
'
5.awk 计数
- #!bin/sh
- arm-eabi-nm1.test.axf|
-
awk-F""'
- {
-
if(""$2""~/T/)
-
printf("%d%s%s\n",""$1+1"",""$2"",""$3"");
-
else
-
printf("%d%s%s\n",""$1"",""$2"",""$3"");
- }
- '|
-
awk-F""'
- BEGIN{i=0;}
- {
- i++;
-
printf("{0x%08x,%s},\n",""$1"",""$3"");
- }
-
END{printf("i=%d\n",i)}
- '
#!bin/sh
arm-eabi-nm 1.test.axf |
awk -F " " '
{
if(""$2""~/T/)
printf("%d %s %s\n", ""$1+1"", ""$2"", ""$3"");
else
printf("%d %s %s\n", ""$1"", ""$2"", ""$3"");
}
'|
awk -F " " '
BEGIN{i=0;}
{
i++;
printf("{0x%08x, %s},\n", ""$1"", ""$3"");
}
END{printf("i=%d\n",i)}
'
补充:
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数
分享到:
相关推荐
以上仅是Shell命令使用文档中的一部分内容,实际上,Shell命令还包括很多其他功能强大的工具,如`grep`用于搜索文本模式,`sed`用于流编辑,`vi/vim`作为文本编辑器,以及各种文件管理命令如`cp`、`mv`和`rm`等。...
- **用途**:用于分隔字符串中的字段,常用于Shell脚本编程。 4. **LILO=LInux LOader** - **含义**:早期的Linux启动加载程序。 - **用途**:启动Linux系统。 5. **MySQL=My是最初作者女儿的名字,SQL=...
**标题与描述解析** 标题提及的是“使用gnu编译工具进行编译的外壳程序msys”,这指的是在Windows操作系统上,通过msys这个环境来运行GNU编译工具链,如gcc、g++等,以便在Windows环境下进行类似Linux的开发工作。...
12. `IFS`:Internal Field Seperators - 内部字段分隔符,用于shell解析命令行参数。 13. `LILO`:LInux LOader - Linux引导加载器。 14. `MySQL`:My(作者女儿的名字)+ SQL(Structured Query Language) - 关系...
这些命令用于安装基本的库和支持文件,例如 `libelf1` 用于处理 ELF 文件格式,`ksh` 为 Korn shell,是许多脚本的基础,而 `nscd` 则提供了对网络服务的支持。 ##### 2. 创建符号链接 为了确保 Cadence 正确识别...
- **bash**:Bourne-Again SHell是Linux的默认shell,用于执行命令和脚本。 - **awk** 和 **sed**:文本处理工具,常用于配置文件的修改和数据处理。 4. **硬件兼容性和性能优化**: - **numactl**:帮助管理多...
12. **IFS (Internal Field Separators)**:内部字段分隔符,常用于shell脚本中对字符串进行分割。 13. **LILO (LInux LOader)**:早期的Linux启动加载程序。 14. **MySQL (MyŮ֣ SQL = Structured Query Language)...
### Linux命令英文全称解析 Linux作为一款强大的开源操作系统,其命令行工具是进行系统管理、软件开发等工作的核心组成部分。对于初学者来说,理解这些命令的英文全称及其背后的含义,有助于更好地记忆和掌握它们的...
6. Shell脚本的调试方法 32. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式 33. 信号 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 ...
41. **df=DiskFree**:显示文件系统的磁盘空间使用情况。 42. **diff=DIFFerence**:显示两个文件之间的差异。 43. **dmesg=diagnosticmessage**:显示内核启动时的诊断信息。 44. **du=DiskUsage**:显示文件或目录...
例如,Nginx的upstream配置可以通过shell脚本动态生成,以适应服务器IP和权重的变化,提升运维的灵活性和便捷性。 此外,建立流程化的部署机制,使用如Ansible这样的工具,可以确保部署的一致性和可靠性。配合健康...