【linux命令】排序、单一与重复

来源:互联网 发布:舞剧十面埋伏知乎 编辑:程序博客网 时间:2024/06/06 01:19

用到的命令: 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

原创粉丝点击