From e7a681b7091a246bd83af21ef580e5ea9fe8dd73 Mon Sep 17 00:00:00 2001 From: ZhuangZhu-74 <49544524+ZhuangZhu-74@users.noreply.github.com> Date: Mon, 16 Mar 2020 17:14:14 +0800 Subject: [PATCH] Update uniq.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档内容 --- command/uniq.md | 62 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/command/uniq.md b/command/uniq.md index 4eafaeeb5e..04a1dd6d57 100644 --- a/command/uniq.md +++ b/command/uniq.md @@ -1,37 +1,51 @@ uniq === -报告或忽略文件中的重复行 +显示或忽略重复的行。 -## 补充说明 - -**uniq命令** 用于报告或忽略文件中的重复行,一般与sort命令结合使用。 - -### 语法 +## 概要 ```shell -uniq(选项)(参数) +uniq [OPTION]... [INPUT [OUTPUT]] ``` -### 选项 +## 主要用途 + +- 将输入文件(或标准输入)中邻近的重复行写入到输出文件(或标准输出)中。 +- 当没有选项时,邻近的重复行将合并为一个。 + + +## 选项 ```shell --c或——count:在每列旁边显示该行重复出现的次数; --d或--repeated:仅显示重复出现的行列; --f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位; --s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符; --u或——unique:仅显示出一次的行列; --w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。 +-c, --count 在每行开头增加重复次数。 +-d, --repeated 所有邻近的重复行只被打印一次。 +-D 所有邻近的重复行将全部打印。 +--all-repeated[=METHOD] 类似于 -D,但允许每组之间以空行分割。METHOD取值范围{none(默认),prepend,separate}。 +-f, --skip-fields=N 跳过对前N个列的比较。 +--group[=METHOD] 显示所有行,允许每组之间以空行分割。METHOD取值范围:{separate(默认),prepend,append,both}。 +-i, --ignore-case 忽略大小写的差异。 +-s, --skip-chars=N 跳过对前N个字符的比较。 +-u, --unique 只打印非邻近的重复行。 +-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。 +-w, --check-chars=N 只对每行前N个字符进行比较。 +--help 显示帮助信息并退出。 +--version 显示版本信息并退出。 ``` -### 参数 +## 参数 -* 输入文件:指定要去除的重复行文件。如果不指定此项,则从标准读取数据; -* 输出文件:指定要去除重复行后的内容要写入的输出文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。 +INPUT(可选):输入文件,不提供时为标准输入。 -### 实例 +OUTPUT(可选):输出文件,不提供时为标准输出。 -删除重复行: +## 返回值 + +返回0表示成功,返回非0值表示失败。 + +## 例子 + +注意:命令2和命令3结果一样,命令1仅作了相邻行的去重。 ```shell uniq file.txt @@ -39,7 +53,7 @@ sort file.txt | uniq sort -u file.txt ``` -只显示单一行: +只显示单一行,区别在于是否执行排序: ```shell uniq -u file.txt @@ -59,4 +73,10 @@ sort file.txt | uniq -d ``` - \ No newline at end of file +### 注意 + +1. `uniq`只检测邻近的行是否重复,`sort -u`将输入文件先排序然后再处理重复行。 + +2. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 uniq`,`info coreutils 'uniq invocation'`。 + +