Sort命令
很常用!和awk类似 都吧文件看作域和记录,默认域分割符是空格
sort命令与awk一样,将文件看作记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为:
sort [选项] [输入文件]
-c 测试文件是否已经排序
-k 指定排序的域(默认是第一个字符)
-m 合并
-n 根据数字大小进行排序
-o 将输出写到指定的文件 相当于将输出重定向到指定文件
-r 将文件结果逆向!!!!!!!!!!!!!!!!
-t 改变域分割符
-u 取出结果中的重复行
eg:
文件内容 :
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
HP:China:5600:2010:DM3
SumSung:Korea:5400:2009:Q308
ThinkPad:USA:14000:2009:X301
IdeaPad:China:8000:2007:U450
Acer:Taiwan:8000:2010:PT210
Acer:Taiwan:8000:2010:PT210
-t选项可用于设置分隔符
sort -t: CARGO.db (按照:分割!!,默认情况下是按照第一个字符排序的)
结果:
Acer:Taiwan:8000:2010:PT210
Acer:Taiwan:8000:2010:PT210
HP:China:5600:2010:DM3
IdeaPad:China:8000:2007:U450
SumSung:Korea:5400:2009:Q308
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
-k选项用于指定排序的域,sort默认按第1域进行排序
eg :
sort -t: -k2 CARGO.db 按照第二域排序(是按照字符排的序 默认情况下都按照字符,所以如果域是数字的话,100要在50的前面 下个例子按照数字排序)
结果:
HP:China:5600:2010:DM3
IdeaPad:China:8000:2007:U450
SumSung:Korea:5400:2009:Q308
Acer:Taiwan:8000:2010:PT210
Acer:Taiwan:8000:2010:PT210
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
-n选项用于指定按数值大小进行排序
eg sort -t: -k3n CARGO.db
SumSung:Korea:5400:2009:Q308
HP:China:5600:2010:DM3
Acer:Taiwan:8000:2010:PT210
Acer:Taiwan:8000:2010:PT210
IdeaPad:China:8000:2007:U450
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
-r选项用于将排序结果逆向显示
eg : sort -t: -k3nr CARGO.db
结果
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
ThinkPad:USA:14000:2009:X301
Acer:Taiwan:8000:2010:PT210
Acer:Taiwan:8000:2010:PT210
IdeaPad:China:8000:2007:U450
HP:China:5600:2010:DM3
SumSung:Korea:5400:2009:Q308
-u选项用于去除排序结果中的重复行
单独写哦 亲!!
sort -t: -k3nr -u CARGO.db
结果:
ThinkPad:USA:14000:2009:X301
IdeaPad:China:8000:2007:U450
HP:China:5600:2010:DM3
SumSung:Korea:5400:2009:Q308
-c 测试文件是否已经排序
eg sort -c CARGO.db
结果;
sort:CARGO.db:4:无序: HP:China:5600:2010:DM3
-m 合并
两个文件必须排好(默认第一个字符!)
sort -t: -m file1 file2
-o 将输出写到指定的文件 相当于将输出重定向到指定文件
sort -t: -k3n -o comprice CARGO.db 单独写哦 亲!!
输出到comprice中