掌握Linux uniq命令,轻松去重!
在日常工作中,我们常常会遇到需要处理大量数据的情况。而对于这些数据中的重复内容,我们又该如何快速去除呢?这时候,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服务器,内容如下:
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命令的各种用法及其参数。相信读者已经对于该命令有了更深入的理解和掌握。