linux sort命令以行为单位对文本文件进行排序。
接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明。
sh-# cat /tmp/sort_test.txt
10 my name is xulin
2 I like programming
3 what about you?
sh-#
1. 因为sort命令是按照字符比较的方式进行排序,所以便出现以下的结果,
sh-# cat /tmp/sort_test.txt | sort
10 my name is xulin
2 I like programming
3 what about you?
sh-#
2. 指定-n选项,这样就会以字符串数值大小进行排序,
sh-# cat /tmp/sort_test.txt | sort -n
2 I like programming
3 what about you?
10 my name is xulin
sh-#
3. 如果要反向排序,那就要指定-r选项了,
sh-# cat /tmp/sort_test.txt | sort -nr
10 my name is xulin
3 what about you?
2 I like programming
sh-#
4. 有时候用户希望能够按字段进行排序,其中-t选项用来指定域分隔符,-k用来指定位置,
sh-# cat /tmp/sort_test.txt | sort -t' ' -k 1,2
10 my name is xulin
2 I like programming
3 what about you?
sh-#
sh-# cat /tmp/sort_test.txt | sort -t' ' -k 2,3
2 I like programming
10 my name is xulin
3 what about you?
sh-#
sh-# ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:456 (456.0 b) TX bytes:456 (456.0 b)
sh-#
sh-# ifconfig lo | sort
RX bytes:456 (456.0 b) TX bytes:456 (456.0 b)
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
UP LOOPBACK RUNNING MTU:16436 Metric:1
collisions:0 txqueuelen:0
inet addr:127.0.0.1 Mask:255.0.0.0
lo Link encap:Local Loopback
sh-#
sh-# ifconfig lo | sort -t: -k 2 -n
collisions:0 txqueuelen:0
lo Link encap:Local Loopback
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
inet addr:127.0.0.1 Mask:255.0.0.0
RX bytes:456 (456.0 b) TX bytes:456 (456.0 b)
UP LOOPBACK RUNNING MTU:16436 Metric:1
sh-#
sh-# ifconfig lo | sort -t: -k 2 -nr
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX bytes:456 (456.0 b) TX bytes:456 (456.0 b)
inet addr:127.0.0.1 Mask:255.0.0.0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
lo Link encap:Local Loopback
collisions:0 txqueuelen:0
sh-#
是不是很方便呢?