You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用grep命令替代strings命令?

能否用grep命令替代strings命令?

当然可以呀!我之前在Windows的Git Bash环境里折腾文件分析时,就碰到过没有strings命令的情况,用grep完全能实现提取指定长度以上可打印ASCII字符串的需求,操作起来还挺顺手的。

核心就是靠正则表达式匹配连续的可打印ASCII字符,再通过grep的参数控制只输出符合长度要求的部分,具体命令给你列出来:

  • 提取文件中长度至少5个字符的可打印ASCII字符串:
    grep -o '[ -~]\{5,\}' 你的文件名
    

给你拆解下每个部分的作用:

  • -o:这个参数特别关键,它让grep只输出匹配到的字符串本身,而不是包含匹配内容的整行,和strings的输出逻辑完全一致;
  • [ -~]:这个正则范围覆盖了所有ASCII可打印字符(从空格到波浪线,对应ASCII码32到126,包含字母、数字、符号和空格);
  • \{5,\}:表示匹配至少5个连续的前面指定的字符,你可以把5换成自己需要的最小长度,比如要提取至少8个字符的就改成\{8,\}。

如果你的场景里有跨行的字符串(比如字符串被换行符打断了),可以加个-z参数,让grep把文件当成NUL分隔的内容,这样就能跨行匹配了:

grep -z -o '[ -~]\{5,\}' 你的文件名

顺便提一句,Git Bash自带的是GNU grep,所以默认支持这些正则语法;要是在其他环境用grep可能需要加-E参数启用扩展正则,写成grep -E -o '[ -~]{5,}' 你的文件名,不过Git Bash里完全不用多这一步~

备注:内容来源于stack exchange,提问作者mwfearnley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:32:58