Linux新趋势:直接弃用AWK
概述
choose是一个命令行文本处理工具,其设计理念是为日常的文本任务提供一种简单直观的处理方式,这使得它在某些方面更受欢迎,尤其是与cut和awk这两个强大的文本和数据处理工具相比。
应用场景
choose命令在需要进行基本文本处理的场景中非常有用,例如,当你需要快速地从文本中选择特定的字段或范围时。由于它的语法简洁直观,使得它比awk和cut更易于使用。此外,由于choose是用Rust编写的,所以它的性能非常出色,对于处理长文件或其他性能至关重要的情况,choose是一个很好的选择。
choose的主要特性包括:
类似于Python的列表切片的简洁字段选择语法:你可以使用类似于Python的切片语法来选择你想要的字段。
从行尾开始的负索引:你可以从行的末尾开始选择字段,而不是总是从行的开始处。
可选的起始/结束索引:你可以选择省略范围的开始或结束,结果将包括行的开始或结束。
零索引:字段的索引是从零开始的,这与许多编程语言中的索引方式相同。
反向范围:你可以选择一个反向的范围,即从一个较大的索引到一个较小的索引。
对于足够长的输入,比cut稍快,比awk快很多:这是因为choose是用Rust编写的,Rust是一种注重性能的编程语言。
功能
choose命令的基本用法是
choose [FLAGS] [OPTIONS] ...
其中,是要打印的字段,可以是a、a:b、a…b或a…=b,其中a和b都是整数。范围的开始或结束可以省略,结果将包括行的开始或结束。a:b包含b(除非被-x覆盖)。a…b不包含b,a…=b包含b。
例如,choose 5将打印一行的第5个项目(从零开始索引)。choose -f ‘:’ 0 3 5将打印一行的第0个、第3个和第5个项目,其中项目由:而不是空格分隔。choose 2:5将打印从第2个到第5个项目的所有内容,包括第5个。choose -x 2:5将打印从第2个到第5个项目的所有内容,不包括第5个。
举例说明
# 打印一行的第5个项目(从零开始索引)
choose 5
# 打印一行的第0个、第3个和第5个项目,其中项目由':'而不是空格分隔
choose -f ':' 0 3 5
# 打印从第2个到第5个项目的所有内容,包括第5个
choose 2:5
# 打印从第2个到第5个项目的所有内容,不包括第5个
choose -x 2:5