6 个版本
0.3.5 | 2022 年 12 月 19 日 |
---|---|
0.3.4 | 2022 年 11 月 10 日 |
0.3.2 | 2022 年 10 月 29 日 |
1590 在 命令行工具 中
25KB
460 行
rwc
这只是 GNU/wc 命令克隆的简单版本,使用 Rust 编写。
对于 Rust 初学者,可以自由地查看这个项目进行实践 :)
(使用 Clap-v4)
功能
我所实现的功能如下
- 支持并行读取多个文件并计算结果
- 美观的表格输出
- 读取文件时具有彩色进度条(读取大文件时非常有用)
- 支持常见 shell 的自动完成 更多信息
注意
在读取大量大文件时,它比 wc 命令快得多且更美观。(感谢 rayon
)
但由于运行时构建的时间消耗,读取少量小文件时可能较慢。
对于中文用户,您可以查看我关于使用 clap-rs 编写此项目的博客
安装
手册
git clone https://github.com/jedsek/rust-wc
cd rust-wc
cargo build --release
命令路径为 rust-wc/target/release/rwc
,您可以将其复制/移动到其他位置
或者直接使用以下命令:cargo run --release -- <args>
发布
您可以下载在 发布 中发布的二进制文件
示例
- 使用所有选项计数指定目录中的文件
$ rwc all src/*
Please waiting...
Reading files / Getting content from stdin:
[0s][100%] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 153B Done!
[0s][100%] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 126B Done!
[0s][100%] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1.65 KiB Done!
[0s][100%] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 5.43 KiB Done!
Calculating...
┌───────────────┬───────┬───────┬───────┬───────┬──────────────────────────────┐
│ Path │ Bytes │ Chars │ Words │ Lines │ Maximum line width (Unicode) │
├───────────────┼───────┼───────┼───────┼───────┼──────────────────────────────┤
│ ./src/calc.rs │ 5562 │ 5562 │ 450 │ 181 │ 110 │
├───────────────┼───────┼───────┼───────┼───────┼──────────────────────────────┤
│ ./src/main.rs │ 153 │ 153 │ 18 │ 8 │ 34 │
├───────────────┼───────┼───────┼───────┼───────┼──────────────────────────────┤
│ ./src/cli.rs │ 1694 │ 1694 │ 198 │ 63 │ 127 │
├───────────────┼───────┼───────┼───────┼───────┼──────────────────────────────┤
│ ./src/lib.rs │ 126 │ 126 │ 14 │ 6 │ 72 │
└───────────────┴───────┴───────┴───────┴───────┴──────────────────────────────┘
- 获取帮助
$ rwc -h
A GNU/wc clone written in rust, which is faster when reading a large of big files
Usage: rwc <--bytes|--chars|--words|--lines|--longest-line> [PATH]...
rwc [PATH]... <COMMAND>
Commands:
all Enabled all available options
help Print this message or the help of the given subcommand(s)
Arguments:
[PATH]... The path(s) you should provide
Note when without FILE or it is `-`, read standard input (stop inputting by `CTRL-D`)
The file read from stdin will prefix with `Input/`, and the other will prefix with `./` [default: -]
Options:
-b, --bytes Print the byte counts
-c, --chars Print the character counts
-w, --words Print the word counts
-l, --lines Print the line counts
-L, --longest-line Print the maximum line width (Unicode)
-h, --help Print help information
-V, --version Print version information
欢迎
当您遇到问题或想改进代码时,请随时提交 issue。
谢谢 :)
待办事项
- 更好地处理目录参数
- 当文件无法读取时,输出应报告错误
- 尊重
.gitignore
文件
依赖项
~6–14MB
~150K SLoC