linux 之 sort、uniq、wc
sort
对文件指定的行拍戏,并将结果写到标准输出。
语法:
-f 忽略大小写的差异 -b 忽略最前面空格符部分 -n 使用纯数字进行排序 -r 反向排序
-u 相同的数据,仅出现一行(uniq)
-t 分隔符
-k 以哪个区间来排序
举例:
- cat list.txt | sort # sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序
- cat list.txt | sort -t ',' -k 3 # , 分割后,以第三列进行排序
- cat list.txt | sort -t ',' -k 3n # , 分割后,以第三列数字进行排序
root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | sort -t ',' -k 3 b, 3, b, 1, 1 a, 1, 10 b, 2, 2 c, 1, 21 a, 2, 220 a, 2, 220 a, 2, 220 b, 0, 220 c, 2, 31 a, 3, 310 c, 3, 41
uniq
uniq 命令可以去除排序过的文件中的重复行(只对相邻的重复行起作用,所以uniq经常和 sort 合用)
uniq语法:
-i 忽略大小写字符的不同 -c 进行计数 -u 只显示唯一的行
示例:
root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | sort | uniq -c 1 a, 1, 10 3 a, 2, 220 1 a, 3, 310 1 b, 0, 220 1 b, 1, 1 1 b, 2, 2 1 b, 3, 1 c, 1, 21 1 c, 2, 31 1 c, 3, 41
wc
统计文件里面有多少单词,多少行,多少字符
语法:
-l 输出行 -w 输出多少字 -m 输出多少字符
示例:
root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc 12 35 109 root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc -l 12 root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc -w 35 root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc -m 109