用到的命令: sort&&uniq
$sort file1 file2 >sorted.txt
或者
$sort file1 file2 -o sorted.txt
将一组文件的内容排序输出
$ cat sortec.txt | uniq>uniq_lines.txt
找出已排序文件中不重复的行
SORT命令:
对数字进行排序:
$sort -n file.txt
按逆序进行排序:
$sort -r file.txt
按月份进行排序
$sort -M file.txt
依据键或列进行排序
$cat data.txt
1 mac 2000
2 winxp 4000
3 bsd 1000
4 linux 1000
$sort -nkr data.txt
4 linux 1000
3 bsd 1000
2 winxp 4000
1 mac 2000
其中:-k 指定排序按哪一个键值执行,-n按数字排序,-r逆序排序。
$sort -k 2 data.txt
3 bsd 1000
4 linux 1000
1 mac 2000
2 winxp 4000
为了使sort的输出与以\0作为参数终止符的xargs进行结合
$ sort -z data.txt | xargs -0
uniq命令:
消除重复内容。
$cat sorted.txt
bash
foos
hack
hack
$uniq sorted.txt
bash
foos
hack
或是:
$sort unsortec.txt | uniq
或是
$sort -u unsorted.txt
只显示没有重复现象的行。
$uniq -u sorted.txt
bash
foos
或是:
$sort unsorted.txt | uniq
统计各行在文件中出现次数:
$ sort unsorted.txt | uniq -c
1 bash
1 foos
2 hack
找出文件中重复的行:
$sort unsorted.txt | uniq -d
hack
结合-s 和 -w 来指定键:
-s 指定可以跳过的前N个字符
-w 指定用于比较的最大字符数
$ cat data.txt
u:01:gun
d:04:linux
u:01:bash
u:01:hack
我们要选择01最为键值。-s 2忽略前两个字符 -w 2 用两个字符最为键值(01)
为了使uniq的输出与以\0作为参数终止符的xargs进行结合
$uniq -z file.txt || xargs -0 rm