温馨提示×

如何过滤linux strings结果

小樊
48
2026-09-14 14:36:27
栏目: 智能运维

在 Linux 下,strings 命令用于从二进制文件或数据中提取可打印字符串。通常我们会配合 管道(pipe) 和文本处理工具来“过滤”结果。下面按常见需求给你一些实用方法。


1. 过滤包含某关键字的字符串(grep)

strings file.bin | grep "error"

忽略大小写:

strings file.bin | grep -i "error"

多个关键字(或):

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

2. 排除某些字符串

strings file.bin | grep -v "debug"

排除多个:

strings file.bin | grep -Ev "debug|test"

3. 只显示长度足够的字符串

strings 默认最小长度是 4,可自定义:

strings -n 8 file.bin

4. 按字符串出现的地址过滤

显示地址:

strings -a -t x file.bin

结合 grep:

strings -a -t x file.bin | grep "error"

5. 只提取看起来像路径 / URL / IP 的内容

路径:

strings file.bin | grep "/"

URL:

strings file.bin | grep -E "https?://"

IP:

strings file.bin | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

6. 排序、去重

strings file.bin | sort | uniq

只看重复杂项:

strings file.bin | sort | uniq -c | sort -nr

7. 写到文件再分析

strings file.bin > strings.txt
grep "password" strings.txt

8. 结合其他工具(awk / sed)

只取第 2 列:

strings file.bin | awk '{print $2}'

替换内容:

strings file.bin | sed 's/foo/bar/g'

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

0