Shell基础之-sort命令

sort 对文件排序的工具

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!
我会在当天或者第二天及时回复,并且改进~~

     sort将输入文件看做由多条记录组成的数据流,而记录由可变宽的字段组成,以换行符作为定界符
   sort [option] file

sort命令选项及其意义

   -c #测试文件是否已经被排序    -k #指定排序的域    -m #合并两个已排序的文件    -n #根据数字大小进行排序    -o [输出文件] #将输出写到指定的文件,相当于将输出重定向到指定文件    -r #将排序结果逆向显示    -t #改变域分隔符    -u #去除结果中的重复行

sort命令示例:

使用域分隔符:对test文件进行排序
   sort -t: test

按第3域对test文件进行排序
   sort -t: -k3 test  

按第3域对test文件进行排序,价格从小到大
   sort -t: -k3n test

按第3域对test文件进行排序,价格从大到小
   sort -t: -k3nr test

将test文件中重复的行去掉
   sort -t: -u test
   cat test | sort | uniq 

将排序后的内容不输出到屏幕,直接保存于文件中  
   sort -t: -k3n -o xx test
   sort -t: -k3n test > xx

检测文件是否已经排序好
   如果是已经排序好的文件,检测则需要指定sort是如何排序的
   sort -c -t: -k3n xx

将111222两个已经排好序的文件放在一起
   sort -m 111 222

sort和awk的联合用法

J Luo
Southeast University
Nanjing,China

Y Zhang
Victory University
Melbourne,Australia

D Hou
Beijing University
Beijing,China

B Liu
Shanghai Jiaotong University
Shanghai,China

C Lin
University of Toronto
Toronto,Canada

将这个替换为下面字符

B Liu
Shanghai Jiaotong University
Shanghai,China

C Lin
University of Toronto
Toronto,Canada

D Hou
Beijing University
Beijing,China

J Luo
Southeast University
Nanjing,China

Y Zhang
Victory University
Melbourne,Australia


awk -v  RS="" '{gsub("\n","@");print}' qq | sort | awk -v ORS="\n\n" '{gsub("@","\n");print}'

你可能感兴趣的:(排序,shell)