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

本文介绍如何使用sort命令对文件内容进行排序,并结合uniq命令去除重复行,还展示了如何通过选项实现不同类型的排序及对输出的定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值