在 Debian(以及其它 Linux 发行版)里,strings 命令用于从二进制文件、core 文件或对象文件中提取可打印字符串。
所谓“过滤输出”,通常是指在 strings 结果里只显示想要的字符串,常见做法如下。
strings file | grep "keyword"
只显示包含 keyword 的字符串。
strings /bin/ls | grep "usage"
忽略大小写:
strings file | grep -i "error"
正则匹配:
strings file | grep -E "error|warning|fail"
strings file | grep -v "debug"
排除包含 debug 的行。
strings -n 6 file
只显示长度 ≥ 6 的字符串。
结合 grep:
strings -n 8 file | grep "config"
只扫描数据段:
strings -d file
只扫描代码段:
strings -t x file # 显示偏移(十六进制)
只显示第 2 列之后的内容:
strings file | awk '{print $2}'
删除前后空白:
strings file | sed 's/^[ \t]*//;s/[ \t]*$//'
从二进制中找可能的 URL:
strings -n 6 /usr/bin/curl | grep -E "https?://"
从程序中找版本信息:
strings /usr/bin/vim | grep -i "version"
如果你有具体场景(比如:
可以告诉我,我可以直接给你对应的 strings 过滤命令。