linux-command/command/tac.md

68 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

tac
===
连接多个文件并以行为单位反向打印到标准输出。
## 概要
```shell
tac [OPTION]... [FILE]...
```
## 主要用途
- 按行为单位反向显示文件内容,如果没有文件或文件为`-`则读取标准输入。
- 处理多个文件时,依次将每个文件反向显示,而不是将所有文件连在一起再反向显示。
## 参数
FILE可选要处理的文件可以为一或多个。
## 选项
```shell
长选项与短选项等价
-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`段落。