当前位置: 首页 > news >正文

Linux字符串占用空间统计方法

这个命令:

strings your_file | awk '{total += length + 1} END {print total}'

我们来逐步解释它的含义:


一、strings your_file

这是 strings 命令,来自于 binutils 工具包。它的作用是:

从二进制文件中提取可打印的 ASCII 字符串。

也就是说,它会从 your_file 这个二进制文件中找出所有“可见的文本字符串”,一行一行输出。


二、awk '{total += length + 1} END {print total}'

这部分是 awk 脚本,对 strings 命令的输出做处理。

重点解释:
length 是什么?

awk 中,length 是一个内建函数,用于返回当前行的长度(字符串长度)。

例如:

echo "hello" | awk '{print length}'
# 输出: 5

所以在这个脚本中:

total += length + 1

表示:每一行的长度加 1(因为每行原本有个 \n 被去掉了,或者表示 null terminator \0),然后加到 total 变量中。

✅ 为什么要加 1?

这是因为 strings 提取出来的每个字符串在原文件中,应该以 null 字符 \0 结尾(这是 C 字符串的约定)。但 strings 输出的时候是按行输出的,不会显示 \0

所以如果你想估算这些字符串在原始二进制文件中实际占用的字节数,你需要把每一行的长度加上一个字节(对应 \0)。


三、最终含义总结:

strings your_file | awk '{total += length + 1} END {print total}'

这个命令的作用是:

估算 your_file 中所有以 null 结尾的可打印字符串在文件中总共占用了多少字节。

  • length 来自 awk,表示当前行的长度。
  • 每行加 1,是因为在二进制中这些字符串是以 \0 结尾的。
  • total 累加所有行的长度 + 1,最后输出这个总字节数。
http://www.dtcms.com/a/240204.html

相关文章:

  • Web APIS Day01
  • python训练营打卡第49天
  • Spring是如何实现无代理对象的循环依赖
  • 企业签名.
  • GeoDrive:基于三维几何信息有精确动作控制的驾驶世界模型
  • 5G 智慧工业园区解决方案
  • 永久磁铁的特点有哪些
  • 影子栈指针是什么?
  • CSS标题下划线动态进入和移开
  • 可视化预警系统:如何为企业生产保驾护航?
  • 从0开始一篇文章学习Nginx
  • riscv操作系统记录(一)
  • __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.
  • 【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
  • 【从零学习JVM|第三篇】类的生命周期(高频面试题)
  • 【JVM】- 内存结构
  • 八股文——JVM
  • 电子电气架构 --- E/E架构战略
  • 【RAG排序】rag排序代码示例-简单版
  • 医疗风险预测AI模型:机器学习与深度学习方法的深度分析与实践
  • Linux应用开发之网络套接字编程(实例篇)
  • 中医有效性探讨
  • 安卓贝利自动点击器高级版下载安装教程
  • 第二届计算机视觉、机器人与自动化工程国际学术会议(CRAE 2025)
  • Easy Rules规则引擎:轻量级Java规则处理实践指南
  • Vue3 + TypeScript + Element Plus 设置表单中日期控件的宽度
  • Linux 性能利器:详解 `top` 命令的使用与输出信息解析
  • 信号的诞生:Linux进程信号的启示与奥秘
  • 【AI News | 20250609】每日AI进展
  • 第二十三课:手搓随机森林