在 Debian 系统里,strings 命令用于从二进制文件或数据文件中提取可打印字符序列。如果你想知道如何“过滤” strings 的输出,通常有以下几种常见方式,取决于你的目的。
grep 过滤关键字最常见的用法是配合 grep:
strings /bin/ls | grep "usage"
只显示包含 usage 的字符串。
忽略大小写:
strings /bin/ls | grep -i "error"
正则表达式:
strings /bin/ls | grep -E "version|help"
strings 自身参数减少输出strings -n 8 /bin/ls
只显示长度 ≥ 8 的字符串,减少噪音。
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配合 grep -v 排除常见库字符串:
strings ./myprog | grep -v "GLIBC" | grep -v "libstdc++"
如果你在目录中批量使用 strings:
find /usr/bin -type f -exec strings {} \; | grep "password"
或只处理 ELF 文件:
file /usr/bin/* | grep ELF | cut -d: -f1 | xargs strings
awk / sed 做更复杂过滤例如只显示以 / 开头的路径:
strings /bin/ls | awk '/^\//'
去重:
strings /bin/ls | sort -u
如果你想分析 .deb 包:
dpkg-deb -x package.deb ./out
strings ./out/usr/bin/xxx | grep "version"
| 目的 | 方法 |
|---|---|
| 查找关键字 | `strings file |
| 减少噪音 | strings -n |
| 排除内容 | grep -v |
| 去重 | sort -u |
| 分析 deb | 解包后再 strings |
如果你能说明具体想过滤什么(比如版本号、路径、错误信息、某种语言),我可以给你更精确的命令。