#newline #conversion #line-break #convert

app rust-newline-converter-cli

换行字节转换库

3 个版本

0.1.2 2022年11月9日
0.1.1 2022年8月6日
0.1.0 2020年6月7日

#1906编码

MIT 许可证

24KB
406 代码行

Rust 新行转换器 (rnc)

用 Rust 编写的“dos2unix”类似工具

Build Status Crates.io

编写此包的动机有两个主要点

  • 我的“学习 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