温馨提示×

如何过滤debian strings输出

小樊
36
2026-09-19 06:17:40
栏目: 智能运维

在 Debian 系统里,strings 命令用于从二进制文件或数据文件中提取可打印字符序列。如果你想知道如何“过滤” strings 的输出,通常有以下几种常见方式,取决于你的目的。


1. 使用 grep 过滤关键字

最常见的用法是配合 grep:

strings /bin/ls | grep "usage"

只显示包含 usage 的字符串。

忽略大小写:

strings /bin/ls | grep -i "error"

正则表达式:

strings /bin/ls | grep -E "version|help"

2. 使用 strings 自身参数减少输出

指定最小字符串长度

strings -n 8 /bin/ls

只显示长度 ≥ 8 的字符串,减少噪音。

只扫描特定节区(ELF)

strings -e l /bin/ls
  • -e s:7-bit
  • -e b:16-bit BE
  • -e l:16-bit LE
  • -e B:32-bit BE
  • -e L:32-bit LE

3. 过滤掉系统/库字符串(只关心程序自身)

配合 grep -v 排除常见库字符串:

strings ./myprog | grep -v "GLIBC" | grep -v "libstdc++"

4. 按文件路径或类型过滤

如果你在目录中批量使用 strings:

find /usr/bin -type f -exec strings {} \; | grep "password"

或只处理 ELF 文件:

file /usr/bin/* | grep ELF | cut -d: -f1 | xargs strings

5. 使用 awk / sed 做更复杂过滤

例如只显示以 / 开头的路径:

strings /bin/ls | awk '/^\//'

去重:

strings /bin/ls | sort -u

6. 过滤 Debian 软件包中的 strings(.deb 文件)

如果你想分析 .deb 包:

dpkg-deb -x package.deb ./out
strings ./out/usr/bin/xxx | grep "version"

常见使用场景总结

目的 方法
查找关键字 `strings file
减少噪音 strings -n
排除内容 grep -v
去重 sort -u
分析 deb 解包后再 strings

如果你能说明具体想过滤什么(比如版本号、路径、错误信息、某种语言),我可以给你更精确的命令。

0 踩