#命令行 #排序 #正则表达式 #过滤 # #指定 #数值

bin+lib aki-resort

对文本行进行排序。您可以使用正则表达式来指定键。

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 文本处理

Download history 2/week @ 2024-06-11 116/week @ 2024-06-18 5/week @ 2024-06-25 3/week @ 2024-07-02 1/week @ 2024-07-23 114/week @ 2024-07-30

每月115 次下载
用于 aki-txpr-macro

MIT/Apache

71KB
1.5K SLoC

aki-resort

crate Docs Rust Version Apache2/MIT licensed Test ubu Test mac Test win

对文本行进行排序。您可以使用正则表达式来指定键。

特性

  • 对文本行进行排序。您可以使用正则表达式来指定键。
  • 最小支持的 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

快速安装

  1. 您可以将此安装到 cargo 的 bin 路径中
cargo install aki-resort
  1. 您可以构建 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()

变更日志

此软件包的变更日志在此。

许可协议

本项目受以下任一协议许可:

您可选择其中之一。

依赖关系

~6MB
~108K SLoC