26 个版本
0.1.25 | 2024年6月19日 |
---|---|
0.1.24 | 2023年1月17日 |
0.1.22 | 2022年6月18日 |
0.1.20 | 2021年12月18日 |
0.1.8 | 2021年3月22日 |
#102 in 文本处理
每月115 次下载
用于 aki-txpr-macro
71KB
1.5K SLoC
aki-resort
对文本行进行排序。您可以使用正则表达式来指定键。
特性
- 对文本行进行排序。您可以使用正则表达式来指定键。
- 最小支持的 rustc 1.58.1 (db9d1b20b 2022-01-20)
命令帮助
aki-resort --help
Usage:
aki-resort [options]
sort lines of text.
Ordering options:
-r, --reverse reverse the result of comparisons
--according-to <word> sort according to <word>
-h, --head <num> unsort the first <num> lines.
-t, --tail <num> unsort the last <num> lines.
Other options:
--color <when> use markers to highlight the matching strings
-e, --exp <exp> regular expression. sort by the entires match
-u, --unique output only the first line of an equal
--max-buffer <size> max buffer size
-H, --help display this help and exit
-V, --version display version information and exit
Option Parameters:
<word> 'month', 'numeric', 'string', 'time', 'version'
<when> 'always', 'never', or 'auto'
<exp> regular expression, sort by the entires match.
<size> if a reading size is more than <size>, then it is not output,
quit and display error message.
Environments:
AKI_RESORT_COLOR_SEQ_ST color start sequence specified by ansi
AKI_RESORT_COLOR_SEQ_ED color end sequence specified by ansi
Examples:
This sort via utf-8 code:
cat file1.txt | aki-resort
This sort via 1st chunk of numeric character according to numeric:
cat file1.txt | aki-resort -e "[0-9]+" --according-to numeric
This sort via 1st chunk of numeric character according to month:
cat file1.txt | aki-resort -e ":([^:]+)$" --according-to month
This sort via 1st chunk of numeric version character according to version:
cat file1.txt | aki-resort -e "[^:]+:[^:]+:([0-9.]+):" --according-to version
This sort via 1st chunk of numeric time character according to time:
cat file1.txt | aki-resort -e "([0-9]+:([0-9]+:)?[0-9]+(.[0-9]+)?)" --according-to time
快速安装
- 您可以将此安装到 cargo 的 bin 路径中
cargo install aki-resort
- 您可以构建 Debian 软件包
cargo deb
并将 .deb 安装到您的本地 Debian 软件包仓库中。
示例
本示例中使用的输入数据如下所示
cat fixtures/fruit.txt
结果输出
Apple:33:3.3:good:Mar
Orange:222:1.1.2:good:Jan
Cherry:4:4:good:Oct
Kiwi:1111:1.1.11:good:Jun
示例 1:简单排序
此排序通过 utf-8 编码进行。
命令行
cat fixtures/fruit.txt | aki-resort
结果输出
Apple:33:3.3:good:Mar
Cherry:4:4:good:Oct
Kiwi:1111:1.1.11:good:Jun
Orange:222:1.1.2:good:Jan
示例 2:数值排序
此排序通过根据数值对数字字符的第一部分进行排序。
命令行
cat fixtures/fruit.txt | aki-resort -e "[0-9]+" --according-to numeric
结果输出
Cherry:4:4:good:Oct
Apple:33:3.3:good:Mar
Orange:222:1.1.2:good:Jan
Kiwi:1111:1.1.11:good:Jun
示例 3:版本排序
此排序通过根据版本对版本字符的第一部分进行排序。
命令行
cat fixtures/fruit.txt | aki-resort -e "^[^:]+:[^:]+:([^:]+)" --according-to version
结果输出
Orange:222:1.1.2:good:Jan
Kiwi:1111:1.1.11:good:Jun
Apple:33:3.3:good:Mar
Cherry:4:4:good:Oct
示例 4:月份排序
此排序通过根据月份对月份字符的第一部分进行排序。
命令行
cat fixtures/fruit.txt | aki-resort -e ":([^:]+)$" --according-to month
结果输出
Orange:222:1.1.2:good:Jan
Apple:33:3.3:good:Mar
Kiwi:1111:1.1.11:good:Jun
Cherry:4:4:good:Oct
示例 5:时间排序
此排序通过根据时间对数字时间字符的第一部分进行排序。
命令行
cat fixtures/fruit.txt | aki-resort -e "([0-9]+:([0-9]+:)?[0-9]+(.[0-9]+)?)" --according-to time
结果输出
Cherry:4:4:good:Oct
Apple:33:3.3:good:Mar
Orange:222:1.1.2:good:Jan
Kiwi:1111:1.1.11:good:Jun
示例 6:带有标题的数值排序
此排序通过根据数值对数字字符的第一部分进行排序。第一行是固定标题。
命令行
cat fixtures/fruit_header.txt | aki-resort -e "[0-9]+" --according-to numeric -h 1
结果输出
name:number:version:nice:month
Cherry:4:4:good:Oct
Apple:33:3.3:good:Mar
Orange:222:1.1.2:good:Jan
Kiwi:1111:1.1.11:good:Jun
库示例
有关此库示例,请参阅 fn execute()
。
变更日志
许可协议
本项目受以下任一协议许可:
- Apache 许可协议 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
您可选择其中之一。
依赖关系
~6MB
~108K SLoC