Linux中的uniq命令可以用来筛选或剔除文本中的重复行,其基本的使用格式为:
uniq [选项] [输入文件 [输出文件]]
其中,输入文件和输出文件是可选的,如果未指定输入文件或输出文件,则默认从STDIN读取或将结果输出到STDOUT。以下是uniq命令的常见选项:
- -c:显示每行文本在文本中出现的次数;
- -d:仅显示文本中出现了两次或以上的行;
- -u:仅显示文本中仅出现了一次的行;
- -i:忽略大小写差异;
- -s:跳过前N个字符;
- -w:仅比较每行中的前N个字符。
下面是两个示例说明:
示例一
假设有一个输入文件input.txt,内容如下:
hello
HELLO
world
Hello
hello
world
现在需要从中筛选出不重复的行并输出到output.txt文件中,可以使用如下命令:
uniq -i input.txt > output.txt
这里使用了-i选项,忽略了大小写差异。执行结果如下:
hello
world
由于结果中忽略了大小写差异,因此HELLO和Hello并没有被视为重复行。
示例二
假设有一个输入文件input.txt,内容如下:
1
2
2
3
4
4
4
5
现在需要找出其中出现次数大于等于2次的行,可以使用如下命令:
sort input.txt | uniq -d
这里先使用了sort命令将文件内容排序,然后使用uniq -d选项只显示出现次数大于等于2的行。执行结果如下:
2
4
由于2和4均出现了2次或以上,因此被筛选出来。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux uniq命令:从文件中删除重复的行 - Python技术站