linux sort排序命令的高级用法

linux中,使用sort按行进行排序是很简单的。
不过有时,生活总是爱抛给你一个一个的问题。如果使用sort按多个列值排列,同时使用tab作为分隔符,而且对于某些列需要进行逆序排列,这样sort命令来实现就略显折腾。

来看具体的例子吧。
比如下面的文件内容,使用[TAB]进行分割:

name    score   total
user1   1       4
user2   2       3
user3   3       2
user4   4       1

对2和3字段进行排序,2字段降序,3字段升序

sort -t $‘\t‘ -k 2r,2 -k 3n,3 user.txt

解释如下:
-t $‘\t‘:指定TAB为分隔符
-k 1, 1: 按照第一列的值进行排序,如果只有一个1的话,相当于告诉sort从第一列开始直接到行尾排列
n:代表是数字顺序,默认情况下市字典序,如10<2
r: reverse 逆序排列,默认情况下市正序排列

时间: 2025-01-02 17:28:35

linux sort排序命令的高级用法的相关文章

sort & cut 命令的常用用法

sort命令介绍: sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txtbananaapplepearorange[[email protected] programming]$ sort seq.txtappleban

linux mount / umount 命令的基本用法

linux mount / umount 命令的基本用法 及 开机自动挂载 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a 安装在/etc/fstab文件中类出的所有文件系统. -f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统. -n 不把安装记录在/etc/mtab 文件中. -r 讲文件系统安装为只读. -v 详细显示安装信息. -w 将文件系统安装为可写,为命令默认情况. -t <文件系统类型> 指定设备的文件系统类型,常见的有:

转:Linux中find命令-path -prune用法详解

在Windows中可以在某些路径中查找文件,也可以设定不在某些路径中查找文件,下面用Linux中的find的命令结合其-path -prune参数来看看在Linux中怎么实现此功能. 假如在当前目录下查找文件,且当前目录下有很多文件及目录(多层目录),包括dir0.dir1和dir2 ...等目录及dir00.dir01...dir10.dir11...等子目录. 1. 在当前目录下查找所有txt后缀文件 find ./ -name *.txt 2.在当前目录下的dir0目录及子目录下查找txt

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

【Linux】排序命令sort

很多时候,我们都会去计算一次数据里头的相同型态的数据总数,举例来说, 使用 last 可以查得这个月份有登陆主机者的身份.那么我可以针对每个使用者查出他们的总登陆次数吗? 此时就得要排序与计算之类的命令来辅助了!底下我们介绍几个好用的排序与统计命令,首先是排序命令sort. [[email protected] ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M

linux sort uniq命令详解

sort 功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件] -b   忽略每行前面开始处的空格字符 . -c   检查文件是否已经按照顺序排序. -d   排序时,处理英文字母.数字及空格字符外,忽略其他的字符. -f   排序时,将小写字母视为大写字母. -i   排序时

【Linux】排序命令uniq

很多时候,我们都会去计算一次数据里头的相同型态的数据总数,举例来说, 使用 last 可以查得这个月份有登陆主机者的身份.那么我可以针对每个使用者查出他们的总登陆次数吗? 此时就得要排序与计算之类的命令来辅助了!我们已经介绍过了排序命令sort,如果我排序完成了,想要将重复的数据仅列出一个显示,可以怎么做呢? [[email protected] ~]# uniq [-ic] 选项与参数: -i :忽略大小写字符的不同: -c :进行计数 范例一:使用 last 将账号列出,仅取出账号栏,进行排

2.sort 排序命令讲解

sort命令 sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码 的字符升序来排列的. -n:安装数值大小从小到大排列 ,默认是升序. -r:降序排列  ***** -t:指定字段分隔符,表示按点号分隔域(类似awk -F,取字段用$1,$2或cut的-d,取字段f数字) -k:指定第几列或第几列的第几个字符,相当于cut -d "分隔符"中的 -f2 **** -u:对相同的行只输出一行  ***** -f:忽略字符大小写 例题:取出[a-z]字幕,

linux中touch命令的常见用法

linux下touch命令常用作改变文件或目录时间 语 法:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help] [--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时间][文件或目录...] 简单的说就是可以把没有的文件给创建了,若一个文件已经存在又一次使用touch命令 则可以把时间修改为当前的时间,还可以任意的按照格式修改文件的时间为任意