在日常工作中,我们常常会遇到需要处理大量数据的情况。而对于这些数据中的重复内容,我们又该如何快速去除呢?这时候,Linux系统下的uniq命令就可以派上用场了。本文将详细介绍Linux uniq命令的使用方法及其各种参数。

一、基础用法

首先来看一下uniq命令最基本的用法。假设我们有一个文件file.txt,内容如下:

apple
banana
orange
apple
pear

如果我们想要去除其中的重复行,只需在终端输入以下命令:

uniq file.txt

此时终端会输出:

apple
banana
orange
apple
pear

可以发现,输出结果只保留了原文件中不重复的行。

二、-c参数

如果我们想知道每个不同行出现的次数,可以使用-c参数。例如:

uniq -c file.txt

此时终端会输出:

2 apple
1 banana
1 orange
1 apple
1 pear

可以看到,输出结果中每一行前面都有一个数字,表示该行在原文件中出现的次数。

三、-d参数

如果我们只想保留重复出现的行(即去除不重复的行),可以使用-d参数。例如:

uniq -d file.txt

此时终端会输出:

apple

可以看到,输出结果只保留了原文件中重复的行,其他行都被去除了。

四、-u参数

反之,如果我们只想保留不重复的行(即去除重复出现的行),可以使用-u参数。例如:

uniq -u file.txt

此时终端会输出:

banana
orange
pear

可以看到,输出结果只保留了原文件中不重复的行,其他行都被去除了。

五、-f参数

有时候,我们需要忽略文件中前几列的内容进行去重操作。这时候就需要使用-f参数。例如,假设我们有一个文件file2.txt,内容如下:

1 apple
2 banana
3 orange
1 pear
2 grape
3 peach

如果我们只想根据第二列进行去重操作,可以使用以下命令:

uniq -f 1 file2.txt

此时终端会输出:

1 apple
2 banana
3 orange

可以看到,输出结果中第一列相同的行已经被去除了。

六、-s参数

类似于-f参数,-s参数可以忽略文件中前几个字符进行去重操作。例如,假设我们有一个文件file3.txt,内容如下:

apple,red,round,delicious
banana,yellow,elongated,tasty
orange,orange,round,sour
apple,green,round,sour
pear,brown,pear-shaped,sweet

如果我们只想根据第六个字符(即第一个逗号后面的字符)进行去重操作,可以使用以下命令:

uniq -s 5 file3.txt

此时终端会输出:

apple,red,round,delicious
banana,yellow,elongated,tasty
orange,orange,round,sour
pear,brown,pear-shaped,sweet

可以看到,输出结果中第六个字符相同的行已经被去除了。

七、-i参数

有时候qq linux,文件中的内容可能会包含大小写不同的重复行。如果我们希望忽略大小写进行去重操作,可以使用-i参数。例如,假设我们有一个文件file4.txtlinux web服务器,内容如下:

linux uniq命令_linux关机命令重启命令_linux uniq

Apple
Banana
orange
apple
Pear

如果我们希望忽略大小写进行去重操作linux uniq命令,可以使用以下命令:

uniq -i file4.txt

此时终端会输出:

Apple
Banana
orange
Pear

可以看到,输出结果中大小写不同但内容相同的行已经被去除了。

八、-w参数

与-f和-s参数类似,-w参数可以指定需要比较的字符数。例如,假设我们有一个文件file5.txt,内容如下:

apples are delicious.
bananas are tasty.
oranges are sour.
pears are sweet.

如果我们只想根据每行前5个字符进行去重操作,可以使用以下命令:

uniq -w 5 file5.txt

此时终端会输出:

apples are delicious.
bananas are tasty.
oranges are sour.
pears are sweet.

可以看到,输出结果中每行前5个字符相同的行已经被去除了。

九、-z参数

有时候,文件中的内容可能会包含空格或其他特殊字符。如果我们希望在比较时以NULL字符作为分隔符,可以使用-z参数。例如linux uniq命令,假设我们有一个文件file6.txt,内容如下:

apple
banana
orange
apple
pear

如果我们希望以NULL字符作为分隔符进行去重操作,可以使用以下命令:

uniq -z file6.txt

此时终端会输出:

apple
banana
orange
pear

可以看到,输出结果中两个空行之间的重复行已经被去除了。

至此,本文详细介绍了Linux uniq命令的各种用法及其参数。相信读者已经对于该命令有了更深入的理解和掌握。

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复