温馨提示×

如何过滤linux strings的输出

小樊
40
2026-09-08 11:44:22
栏目: 智能运维

在 Linux 下,strings 命令用于从二进制文件或数据中抽取可打印字符串。通常我们会把它的输出通过 管道(pipe) 配合其他命令进行过滤。下面按常见需求给你一些实用方法。


1. 用 grep 过滤关键字

最常见的用法,只保留包含某关键字的字符串。

strings file.bin | grep "main"

忽略大小写:

strings file.bin | grep -i "error"

多个关键字(或关系):

strings file.bin | grep -E "error|warning|fail"

2. 用 grep -v 排除内容

过滤掉不想要的字符串:

strings file.bin | grep -v "debug"

3. 按字符串长度过滤

只显示长度 ≥ 6 的字符串(strings 默认最小长度是 4):

strings -n 6 file.bin

或过滤输出:

strings file.bin | awk 'length($0) >= 8'

4. 只显示特定偏移范围的字符串

结合 strings 的偏移参数:

strings -t x file.bin | grep "^1a0"

或只显示前 N 个:

strings file.bin | head -n 20

5. 用 sed 做复杂处理

例如删除空行或替换内容:

strings file.bin | sed '/^$/d'

6. 排序与去重

strings file.bin | sort | uniq

只显示重复字符串:

strings file.bin | sort | uniq -d

7. 组合实战示例

提取长度 ≥ 5 且包含 “http” 的字符串:

strings -n 5 file.bin | grep "http"

提取并保存到文件:

strings file.bin | grep -i "password" > result.txt

如果你有 具体场景(比如分析恶意样本、提取 URL、逆向工程、日志分析),可以告诉我,我可以给你更精确的过滤命令。

0