📅  最后修改于: 2023-12-03 15:02:43.793000             🧑  作者: Mango
在 Linux 操作系统中,uniq
命令可以用于从文本文件或标准输入流中查找并删除重复的行。该命令还支持许多选项,例如只显示重复的行、显示重复的行及其计数等。
uniq
命令的基本语法如下所示:
uniq [options] [input_file [output_file]]
其中,
options
:可选项,以破折号“-”开头,用于指定 uniq
命令的具体功能;input_file
:可选项,表示输入文件的路径。如果没有指定该参数,则从标准输入流(例如键盘输入)中读取;output_file
:可选项,表示输出结果的路径。如果没有指定该参数,则将结果输出到标准输出流(例如终端窗口)中。以下是 uniq
命令中常用的选项:
-c
:同时显示每行重复出现的次数;-d
:仅显示重复的行;-i
:忽略大小写;-u
:仅显示不重复的行。例如,要求输出文件 input.txt
中不重复的行(忽略大小写),可以执行以下命令:
uniq -i input.txt
假设有一个文件 example.txt
,其中包含如下内容:
apple
banana
apple
cherry
banana
apple
使用 uniq
命令可以将所有重复的行删除。执行以下命令可以输出不重复的行:
uniq example.txt
输出结果如下所示:
apple
banana
apple
cherry
banana
apple
可以看到,所有的行都没有被删除,这是因为 uniq
命令默认根据每一行的内容进行比较,因此相邻的重复行不会被删除。
如果要求删除所有连续的重复行,可以使用 -d
选项。执行以下命令:
uniq -d example.txt
输出结果如下所示:
apple
banana
可以看到,只有重复的行被保留了下来。
如果要统计每行出现的次数,可以使用 -c
选项。执行以下命令:
uniq -c example.txt
输出结果如下所示:
1 apple
2 banana
1 apple
1 cherry
1 banana
1 apple
可以看到,在每行的前面添加了这一行在文本中出现的次数。
如果要将结果输出到一个新的文件中,可以使用输出重定向符 >
。例如,执行以下命令可以将所有不重复的行写入到文件 output.txt
中:
uniq example.txt > output.txt
uniq
命令可以帮助我们查找并删除重复的行,还支持许多选项,例如只显示重复的行、显示重复的行及其计数等。在日常的 Linux 系统操作中,这个命令是非常有用的。