现在的位置: 首页 > 综合 > 正文

leeboy的linux学习十sort实例

2013年03月21日 ⁄ 综合 ⁄ 共 1484字 ⁄ 字号 评论关闭

38、sort实例详解

   
1、sort -t: -r sorttext:按照“:”为分隔符,依照第一个域分类,-r表示逆序。

   
2、sort -t':' -k2 sorttext:-k2表示按照第二于域进行排序

   
3、sort -t: -k3n -k4 sorttext:-k3n表示依照第三域按照数值排序;-k4表示按照字符排序,即一个一个字符比较。如果数字按照字符比较:比如10和2比较,10将小于2,按照第一位比较。

   
4、sort -t: -k3.2,3.2n -k4 sorttext:-k3.2,3.2n表示按照第三个域中的第二个字符进行比较,“,”表示范围。

   
5、sort -u -k3n sorttext:-u表示唯一,将文件中的相同行删除

   
6、sort -t: -k3n sorttext | tail -1:显示倒数第一行

   
7、sort -t: -k3n sorttext | tail -1:显示正数第一行

   
8、sort -t: -k3n -u sorttext | awk -F: '{print $3}':按照第三列唯一排列,并输出。

   
9、sort -c sorttext:判断是否排序。

   
10、sort -m sorttext sorttext2:将文件合并。默认按照第一个字符比较,找到比要插入文件第一行第一个字符大的,将文件插入到该行之前。可以用-k来控制插入的位置。

39、uniq实例详解:uniq的重复和sort –u不同,在uniq中只有“连续重复”的行才算重复。

   
1 、uniq -c uniqtext:-c表示输出重复行个数。

   
2、uniq -f2 uniqtext:忽略前两个域进行比较

   
说明:

   
-u 只显示不重复行。

-d
只显示有重复数据行,每种重复行只显示其中一行

-c
打印每一重复行出现次数。

-f n为数字,前n个域被忽略。

40、join文件连接实例:(必须是排序完成的文件)类似于sql中的左右连接

   
(注:1-4例中的两个文件的第一个域为关键域)

   
1、join jointown joinname:将文件依照第一域中相同的连接(类似于内连接)

   
2、join -a1 jointown joinname:显示连接结果及jointown中多余的行(类似左连接)

   
3、join -a2 jointown joinname:显示连接结果及jointown中多余的行(类似右连接)

   
4、join -o 1.1,2.3 jointown joinname:文件选择性连接,1.1,2.3:第一个文件的     第一个域和第二个文件的第三个域。

   
5、join -j1 1 -j2 4 jointown joinname:指定第一个文件的第一个域和第二个文件的第四个域为关建域,进行连接。

41、cut:用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。

   
1、cut -d' ' -f1,3 jointown:剪切域1和3,文件域分隔符为空格。

   
2、cut -c8-11 jointown:剪切具体的字符,从第八个字符到第十一个字符。

42、paste:将两个文件粘贴

   
1、paste joinname jointown:将jointown粘贴到joinname,输出。

   
2、paste -d: joinname jointown:设置粘贴处域分隔符。

   
3、paste -s joinname jointown:将每个文件合并成一行。

   
4、ls | paste -d" " - - - -:通过管道,将文件名一行4个打印。(很特殊)

43、split -2 splittext:将文件每两行分割到不同的文件中。

抱歉!评论已关闭.