3 个版本
0.1.2 | 2022年11月9日 |
---|---|
0.1.1 | 2022年8月6日 |
0.1.0 | 2020年6月7日 |
#1906 在 编码
24KB
406 代码行
Rust 新行转换器 (rnc
)
用 Rust 编写的“dos2unix”类似工具
编写此包的动机有两个主要点
- 我的“学习 Rust”项目
dos2unix
在某些奇怪的平台(如 Android shell)上不可用或有错误
然而,与dos2unix
的相似性仅限于功能,CLI 界面在设计上并不模仿dos2unix
的界面。
工具使用
rnc 0.1
Newline byte(s) converter
USAGE:
rnc.exe [FLAGS] [OPTIONS] --dos2unix --unix2dos [FILE]...
FLAGS:
-f, --force Don't omit binary files
-d, --debug Print out debug info
--dos2unix Convert DOS line endings to Unix (\r\n -> \n)
-h, --help Prints help information
--unix2dos Convert Unix line endings to DOS (\n -> \r\n)
-V, --version Prints version information
-v, --verbose Be verbose about the operations
OPTIONS:
-e, --encode <ENCODE> Encode output in given encoding [possible values: utf8, utf16, utf16be]
-o, --output <OUT> Write to OUT instead of FILE or stdout. Can only be used if FILE is specified just once
ARGS:
<FILE>... Sets the input file to use. If not set, processes stdin to stdout
转换注意事项
rnc
尊重输入文件的合法换行符。这意味着,如果您使用--unix2dos
,并且输入缓冲区中有一个单独的\r
,它将不会被转换为\r\n
,因为它不是有效的换行序列。
将来可能会有一个选项来覆盖此行为。
性能
主要开发目标之一是达到不亚于dos2unix
的转换时间。在 Linux 主机上,性能大致相似(转换 ~100MB 文件时大约有 0.1 秒的差异),而在 Windows 上rnc
的速度是dos2unix
的两倍(从https://sourceforge.net/projects/dos2unix/下载的版本)。
MSRV
最低支持的 Rust 版本是 1.40.0
。
依赖项
~5–13MB
~113K SLoC