linux命令sort的⽤法,Linuxsort命令⽤法详解
sort命令将许多不同的域按不同的列顺序分类。sort命令以空格作为字段分隔符,将⼀⾏分割为多个关键字对⽂件进⾏排序。需要注意的是sort命令并不对⽂件内容进⾏实际的排序(即⽂件内容没有修改),只是将⽂件内容按有序输出。
命令格式
sort -cmu -o output_file [other_options] +pos1 +pos2 input_files
命令选项
-c:检查⽂件是否已经按照顺序排序。
-m:将⼏个排序号的⽂件进⾏合并。
-u:删除所有重复⾏。
-o:将排序后的结果存⼊指定的⽂件。
-b:忽略每⾏前⾯开始出的空格字符。
-h:⼈类可阅读的格式。
-d:排序时,处理英⽂字母、数字及空格字符外,忽略其他的字符。
-f:排序时,将⼩写字母视为⼤写字母。
-i:排序时,除了040⾄176之间的ASCII字符外,忽略其他的字符。
-M:将前⾯3个字母依照⽉份的缩写进⾏排序。
-n:按照数值的⼤⼩排序。
-r:以相反的顺序来排序。
-t:指定排序时所⽤的栏位分隔字符。
+-:以指定的栏位来排序,范围由起始栏位到结束栏位的前⼀栏位。
实⽤命令
实例:0. 测试⽂件
描述:下⾯是device_sort的清单,包含了⽤户设备登录次数情况,各域为:(1)⽤户ID,(2)⼿机系统版本,(3)登录访问次数。域分隔符为冒号。域号从0开始,第1列⽤户ID为域0,即分类键0,以此类推。
实例:1. ⽂件是否已分类
描述:检查device⽂件的域⽤户ID是否已经有序。sort不加任何参数默认以域0(也就是第⼀列)进⾏排序,-c选项检查⽂件是否已按某种顺序排序。 命令:
linux登录命令sort -c device
输出:
实例:2. 使⽤分隔符
描述:将device⽤:作为域分隔符分类,然后按第⼀列进⾏排序。实际上读⽂件时sort操作将⾏中各域进⾏⽐较,这⾥只返回基于第⼀域sort的结果。 命令:
sort -t : device
输出:
实例:3. 排序求逆
描述:反转实例2中的排序结果。这⾥先按照第⼀列进⾏排序,然后反转其结果。 命令:
sort -t: -r device
输出:
实例:4. 使⽤选项k按指定列排序
描述:使⽤选项k指定第1列进⾏排序。 命令:
sort -k1 -t: device
输出:
实例:5. 数值域排序
描述:使⽤n选项指明对数值内容进⾏排序,否则会按字符串从第⼀个字符开始进⾏⽐较。 命令:
sort -nk3 -t: device
输出:
实例:6. 唯⼀性排序
描述:使⽤u选项过滤所有重复的⾏,每个重复的⾏只显⽰⼀次。 命令:sort -u -t: device
输出:
实例:7. 两个⽂件进⾏排序、合并,并且删除重复⾏
描述:两个⽂件进⾏排序、合并,并且删除重复⾏。 命令:
sort -u device device2
输出:
实例:8. pos⽤法
格式: F[.C][OPTS][,F[.C][OPTS]]
解释:指定排序域开始和结束的位置,F是字段的序号,C是字符的序号,两者初始都是1,结束位置可以不指定,默认是到⾏结束位置。如果-t和-b选项都没有指定,那么字段中的字符从前⾯的空⽩开始计数。OPTS由⼀个或多个单个字母排序的选项[bdfgiMhnRrV],它们将重写全局排序选项,如果没有排序键被指定,sort就会以⼀整⾏作为键。-b选项去除每个键的前导空⽩。
假设有五列字段。
-k 2:表⽰从第⼆列开始到最后⼀列作为排序的关键字。
-k 2,5:表⽰从第⼆列开始到第五列作为排序的关键字。
-k 2,2:表⽰仅以第⼆列作为排序的关键字。
-k 4 -k 5:-k5是多余的。
-k 2,2 -k 1,1:先以第⼆列进⾏排序,再以第⼀列排序。
-k 2.2,2.5 -k 4.3,4.5:先以第⼆列的第⼆个字符开始到第五个字符进⾏排序,然后先以第四列的第三个字符开始到第五个字符进⾏排序。
格式:
sort +field_number .characters_in
描述:从第三列的第⼆个字符开始排序。 命令:
sort -k3.2 -t: device
输出:
描述:对/root⽬录执⾏ls -l的命令,其结果通过管道传递给sort进⾏排序,先以第⼆列排序,然后第五列,最后是第九列倒序。 命令:
ls -l /root | sort -k 2,2n -k 5,5n -r -k 9,9
输出:
实例:9. head和tail与sort配合使⽤
格式:
sort +field_number .characters_in
描述:以第三列的数值形式进⾏排序,从结果中抽取前3条和倒数3条记录。
命令:
sort -nk3 -t: device | head -3
sort -nk3 -t: device | tail -3
输出:
实例:10. awk与sort配合使⽤
描述:将sort结果⽤awk进⾏加⼀点附加信息。 命令:
sort -nk3 -t: device | tail -1 | awk -F: '{print $1"--"$2"--"$3}'
输出:
实例:11. 两个输⼊⽂件进⾏sort,然后把它们连接成⼀⾏
描述:创建两个⽂件,并⽤数据填充,然后对这两个⽂件排序并连接。
命令:
echo -e "5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable" > echo -e "3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora" >
join
输出:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论