diff --git a/command/tac.md b/command/tac.md index aa550f3e56..45f768efff 100644 --- a/command/tac.md +++ b/command/tac.md @@ -1,28 +1,67 @@ tac === -将文件以行为单位的反序输出 +连接多个文件并以行为单位反向打印到标准输出。 -## 补充说明 - -**tac命令** 用于将文件以行为单位的反序输出,即第一行最后显示,最后一行先显示。 - -### 语法 +## 概要 ```shell -tac(选项)(参数) +tac [OPTION]... [FILE]... ``` -### 选项 +## 主要用途 + +- 按行为单位反向显示文件内容,如果没有文件或文件为`-`则读取标准输入。 +- 处理多个文件时,依次将每个文件反向显示,而不是将所有文件连在一起再反向显示。 + + +## 参数 + +FILE(可选):要处理的文件,可以为一或多个。 + +## 选项 ```shell --a或——append:将内容追加到文件的末尾; --i或——ignore-interrupts:忽略中断信号。 +长选项与短选项等价 + +-b, --before 在之前而不是之后连接分隔符。 +-r, --regex 将分隔符作为基础正则表达式(BRE)处理。 +-s, --separator=STRING 使用STRING作为分隔符代替默认的换行符。 +--help 显示帮助信息并退出。 +--version 显示版本信息并退出。 ``` -### 参数 +## 返回值 -文件列表:指定要保存内容的文件列表。 +返回状态为成功除非给出了非法选项或非法参数。 +## 例子 + +```shell +# 选自官方info文档的例子: +# 一个接着一个字符的反转一个文件: +tac -r -s 'x\|[^x]' test.log + +# 关于-b选项: +seq 1 3 |tac +# 输出 +3 +2 +1 +# 使用-b选项: +seq 1 3 |tac -b +# 输出,注意21后面没有换行符: + + +3 +21 +# 前一个例子相当于将 '1\n2\n3\n' 转换为 '3\n2\n1\n' +# 前一个例子相当于将 '1\n2\n3\n' 转换为 '\n\n3\n21' +``` + +### 注意 + +1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 tac`或`info coreutils 'tac invocation'`。 +2. 关于基础正则表达式(BRE)的内容,详见`man -s 1 grep`的`REGULAR EXPRESSIONS`段落。