#单行 #比较 #命令行 #差异 #文件排序 #文本 #CLI

bin+lib line_diff

通过将它们分块进行标记,比较单行的一种工具

17 个版本 (重大更改)

0.13.2 2023 年 7 月 6 日
0.13.1 2022 年 12 月 5 日
0.13.0 2021 年 10 月 21 日
0.12.0 2020 年 12 月 8 日
0.1.0 2019 年 11 月 28 日

#680命令行工具

每月 43 次下载

MIT/Apache

18KB
319 代码行

line_diff

Rust 比较两个单行文本的工具。预期用途是在某些部分不同或缺失的长行中进行比较。示例用例

  • 带有许多参数和标志的长命令行
  • 带有许多路径(可能顺序不同)的编译器命令
  • 带有略微不同的参数的长函数声明

功能

  • 多个、用户指定的分隔符
  • 将所有文本转换为小写
  • 在比较块之前对块进行排序
  • 不同的输入选项:命令行、两个文件、单个文件或标准输入
  • 关于块数和字符数的统计信息
  • 将预处理的存储数据存入文件以供外部 diff 工具使用

示例输出

比较具有不同顺序的参数的不同 cargo 命令。使用 line_diff 可以轻松地发现唯一的区别是 --release 参数

Line 1: 
cargo run -- -o --file f1.txt -s ",;"
Line 2:
cargo run --release -- --file f1.txt -s ",;" -o
┌────────┬────────────┬───────────┐
│ Line 1 │    Same    │  Line 2   │
├────────┼────────────┼───────────┤
│        │ ",;"       │           │
│        │ --         │           │
│        │ --file     │           │
├────────┼────────────┼───────────┤
│        │            │ --release │
├────────┼────────────┼───────────┤
│        │ -o         │           │
│        │ -s         │           │
│        │ cargo      │           │
│        │ f1.txt     │           │
│        │ run        │           │
├────────┼────────────┼───────────┤
│   37   │ Characters │    47     │
├────────┼────────────┼───────────┤
│   8    │   Chunks   │     9     │
└────────┴────────────┴───────────┘

示例

比较两个来自不同输入文件的行。

line_diff f1.txt f2.txt

比较两个来自不同输入文件的行。使用 -o 选项,块在比较之前将被排序。这对于编译器标志等顺序无关的情况很有用。

line_diff f1.txt f2.txt -o

比较来自单个输入文件的两个行,并对块进行排序。使用 -s 选项指定两个不同的分隔符(' ' 和 ';')

line_diff --file f1.txt -o -s ' ' ';'

通过指定命令行上的字符串来比较两个行

line_diff --line1 "hello world" --line2 "hello there"

比较两个行,但首先将它们都转换为小写

line_diff --line1 "hello world" --line2 "Hello wOrld" -l

依赖项

~6–19MB
~209K SLoC