sort基本用法

sort 选项
	-u 	--去除重复行
	-r	--降序排列,默认是升序
	-o	--由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
				 但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。这个时候就需要用到-o选项,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在,例:sort filename -o filename
	-n	--在通常情况下shell排序会义为10比2小的情况。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将1			0放在2前面喽。这也是sort的一贯作风。我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!
	-t和-k	--当一行数据有多列的情况,想让非第1列的数值来排序,用法 sort -n -k 2 -t : facebook.txt

1、sort的选项用法
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
例:
[[email protected] ~]# cat seq.txt
banana
apple
pear
orange
[[email protected] ~]# sort seq.txt
apple
banana
orange
pear

2、sort的-u选项,它的作用很简单,就是在输出行中去除重复行。
[[email protected] ~]# cat seq.txt
banana
apple
pear
orange
pear
[[email protected] ~]# sort seq.txt
apple
banana
orange
pear
pear
[[email protected] ~]# sort -u seq.txt
apple
banana
orange
pear

pear由于重复被-u选项无情的删除了。

3、sort的-r选项,sort默认的排序方式是升序,如果想改成降序,加个-r
[[email protected] ~]# cat number.txt
1
3
5
2
4
[[email protected] ~]# sort number.txt
1
2
3
4
5
[[email protected] ~]# sort -r number.txt
5
4
3
2
1

4、sort的-o选项

由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。

但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

[[email protected] ~]# sort -r number.txt > number.txt
[[email protected] ~]# cat number.txt
[[email protected] ~]#
看,竟然将number清空了。

就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。

[[email protected] ~]# cat number.txt
1
3
5
2
4
[[email protected] ~]# sort -r number.txt -o number.txt
[[email protected] ~]# cat number.txt
5
4
3
2
1

5、sort的-n选项

你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。

我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!

[[email protected] ~]# cat number.txt
1
10
19
11
2
5
[[email protected] ~]# sort number.txt
1
10
11
19
2
5
[[email protected] ~]# sort -n number.txt
1
2
5
10
11
19

6、sort的-t选项和-k选项

如果有一个文件的内容是这样:

[[email protected] ~]# cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4

这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。

那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?

指定了间隔符之后,就可以用-k来指定列数了。

[[email protected] ~]# sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

  

原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12064383.html

时间: 2024-11-06 07:08:06

sort基本用法的相关文章

C++ sort函数用法

参考文档:http://hi.baidu.com/posinfo/item/dc3e73584c535cc9d2e10c27 C++ sort函数用法 FROM:http://hi.baidu.com/blackdemonfish/blog/item/e2c1d655d702a45ed0090652%2Ehtml 最近算法作业经常需要排序.偶是一个很懒的人,于是一直用C++的sort进行排序---不少同志对此心存疑虑,所以今天就写一写sort的用法.声明:此用法是从某大牛的程序中看到的,其实偶只

sort函数用法

头文件: #include <algorithm> using namespace std; 1.默认的sort函数是按升序排序. sort(a,a+n);                //两个参数分别为待排序数组的首地址和尾地址 2.可以自己写一个cmp函数,按特定意图进行排序. 例如 : 1).对数组a降序排序 int cmp( const int &a, const int &b ){ if( a > b ) return 1; else return 0; }

Perl Sort函数用法总结和使用实例

一) sort函数用法 sort LISTsort BLOCK LISTsort SUBNAME LIST sort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNAME或BLOCK,sort按标准字串比较顺序来进行(例如ASCII顺序).如果指定了SUBNAME,它实际上是个子函数的名字,该子函数对比2个列表元素,并返回一个小于,等于,或大于0的整数,这依赖于元素以何种顺序来sort(升序,恒等,或降序).也可提供一个BLOCK作为匿名子函数来代替SUBNAM

python 中 sorted() 和 list.sort() 的用法

今天用python自带的sorted对一个列表进行排序, 在这里总结一下 只要是可迭代对象都可以用sorted . sorted(itrearble, cmp=None, key=None, reverse=False) =号后面是默认值 默认是升序排序的, 如果想让结果降序排列,用reverse=True 最后会将排序的结果放到一个新的列表中, 而不是对iterable本身进行修改. eg: 1, 简单排序 sorted('123456')  字符串 ['1', '2', '3', '4',

sort()的用法!

sort的用法,传入一个参数,这个参数必须是函数. 数组中的项是数值是,sort()方法也是比较字符串. var str = [1,2,3,55,99,100];//升序function compare(val1,val2) return val1 - val2; } //降序 function compare1(val1,val2) return val2 - val1; } var result = arr.sort(compare);console.log(result);//降序

1806最大数 string和sort函数用法

1.C++自带sort函数用法 Sort函数有三个参数: (1)第一个是要排序的数组的起始地址. (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序. sort函数使用模板::sort(start,end,排序方法) 第三个参数可以用这样的语句告诉程序你所采用的排序原则 less<数据类型>()     //从小到大排序 greater<数据类型>() //从大到小排序

sort的用法

早一段时间一直没有理解sort的用法,在早几天终于是研究的明白的,所以就来分享一下,如果你也被这个方法困扰,没懂原理,可以看一下这遍文章,希望有所帮助. 第一种,最简单的排序,纯数字排序: var arr=[1,3,5,8,6,4,3]; arr.sort(function(a,b){ return a-b; }) 在这里,a会传进去第0个到length-1的元素,b会传进去第一个到length的长度,前后对比. 第二种,数组对象里面包含数字排排序: var data=[{num:111},{n

C语言qsort和C++sort的用法小结和区别比较

第一项: qsort: (只是些概念,了解一下就可以) 基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低.集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题.所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分. 函数对buf 指向的数据按升序排序. 使用方法: void qsort( void *base, size_t num, size_t width, int (__cdecl *c

【转】sort函数用法

近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧! (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高! (二)c++标准库里的排序函数的使用方法 I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用

redis sort命令用法

1.命令描述返回或保存给定列表.集合.有序集合key中经过排序的元素.排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较. 2.一般sort用法最简单的sort使用方法是sort key和sort key desc.sort key:返回键值从小到大排序的结果.sort key desc:返回键值从大到小排序的结果. 假设price列表保存了今日的物品价格, 那么可以用sort命令对它进行排序:# 开销金额列表redis> lpush price 30 1.5 10 8(integer