7个稳定版本

2.3.4 2021年11月8日
2.3.3 2020年9月22日
2.3.1 2020年4月4日
2.3.0 2020年3月19日

#435 in 文本处理

MIT/Apache

205KB
3K SLoC

Rust 2.5K SLoC // 0.2% comments XSL 882 SLoC // 0.2% comments

标题:stringsext - 在二进制数据中搜索多字节编码的字符串

Cargo Documentation License

stringsextGNU strings 工具的Unicode增强版本,具有额外功能:stringsext 识别西里尔字母、阿拉伯字母、CJKV字符和其他脚本,支持所有多字节编码,而 GNU strings 在 UTF-16 和许多其他编码中无法找到这些脚本。

stringsext 打印出 FILEstdin 中所有至少为 MIN 字节的图形字符序列。

GNU strings 不同,stringsext 可以配置为在 ASCII 以外,还可以在许多其他输入编码中搜索有效字符,例如:UTF-8、UTF-16BE、UTF-16LE、BIG5-2003、EUC-JP、KOI8-R 等。选项 --list-encodings 显示基于 WHATWG 编码标准的有效编码名称列表。当指定多个编码时,扫描将在不同的线程中同时进行。

在搜索 UTF-16 编码的字符串时,96% 的所有可能的双字节序列,作为 UTF-16 码单元解释,直接与 Unicode 码点相关。因此,将随机字节流作为 UTF-16 解释时,遇到有效 Unicode 字符的概率也是 96%。为了减少大量错误,stringsext 提供了可参数化的 Unicode 块过滤器。有关详细信息,请参阅手册页中的 --encodings--same-unicode-block 选项。

stringsext 主要用于从非文本文件中提取 Unicode 内容。

使用 stringsext -e ascii 调用时,stringsext 可用作 GNU strings 的替代品。

截图

stringsext -tx -e utf-8 -e utf-16le -e utf-16be \
           -n 10 -a None -u African  /dev/disk/by-uuid/567a8410

 3de2fff0+	(b UTF-16LE)	ݒݓݔݕݖݗݙݪ
 3de30000+	(b UTF-16LE)	ݫݱݶݷݸݹݺ
<3de36528 	(a UTF-8)	فيأنمامعكلأورديافىهولملكاولهبسالإنهيأيقدهلثمبهلوليبلايبكشيام
>3de36528+	(a UTF-8)	أمنتبيلنحبهممشوش
<3de3a708 	(a UTF-8)	علىإلىهذاآخرعددالىهذهصورغيركانولابينعرضذلكهنايومقالعليانالكن
>3de3a708+	(a UTF-8)	حتىقبلوحةاخرفقطعبدركنإذاكمااحدإلافيهبعضكيفبح
 3de3a780+	(a UTF-8)	ثومنوهوأناجدالهاسلمعندليسعبرصلىمنذبهاأنهمثلكنتالاحيثمصرشرححو
 3de3a7f8+	(a UTF-8)	لوفياذالكلمرةانتالفأبوخاصأنتانهاليعضووقدابنخيربنتلكمشاءوهياب
 3de3a870+	(a UTF-8)	وقصصومارقمأحدنحنعدمرأياحةكتبدونيجبمنهتحتجهةسنةيتمكرةغزةنفسبي
 3de3a8e8+	(a UTF-8)	تللهلناتلكقلبلماعنهأولشيءنورأمافيكبكلذاترتببأنهمسانكبيعفقدحس
 3de3a960+	(a UTF-8)	نلهمشعرأهلشهرقطرطلب
 3df4cca8 	(c UTF-16BE)	փօև։֋֍֏֑֛֚֓֕֗֙֜֝֞׹
<3df4cd20 	(c UTF-16BE)	־ֿ׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋

文档

用户文档

开发者文档

源代码

存储库

分发

构建和安装

  1. 安装Rust,例如

    curl https://sh.rustup.rs -sSf | sh
    
  2. 下载、编译和安装

    cargo install stringsext
    sudo cp ~/.cargo/bin/stringsext /usr/local/bin
    

本项目遵循语义化版本控制

关于

作者

  • Jens Getreu

版权

  • Apache 2许可证或MIT许可证

构建状态

  • status

依赖

~6.5MB
~167K SLoC