leeboy的linux学习十
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:将文件每两行分割到不同的文件中。