1.命令作用
将每个文件写入标准输出,最后一行先写(Write each FILE to standard output, last line first);
以相反的顺序显示文件内容,逐行输出,与cat命令功能相反,tac是反向读取文件。
2.命令语法
Usage: tac [OPTION]... [FILE]...
3.参数详解
OPTION:
- -b, --befores,将分隔符附加在之前而不是之后
- -r, --regex,将分隔符解释为正则表达式
- -s, --separator=STRING,使用STRING作为分隔符而不是换行符
4.常用用例
4.1.与cat相反输出
[root@localhost Desktop]# cat fff
iiiiii:
oooooo:
pppppp:
[root@localhost Desktop]# tac fff
pppppp:
oooooo:
iiiiii:
4.2.指定分隔符相反输出
[root@localhost Desktop]# cat ttt
aaa:bbb:ccc:
[root@localhost Desktop]# truncate -s -1 ttt ## 删除文件最后一个字符(换行符)
[root@localhost Desktop]# cat ttt
aaa:bbb:ccc:[root@localhost Desktop]#
[root@localhost Desktop]#
[root@localhost Desktop]# cat ttt
aaa:bbb:ccc:[root@localhost Desktop]#
[root@localhost Desktop]#
[root@localhost Desktop]# tac -s : ttt
ccc:bbb:aaa:[root@localhost Desktop]#
4.3.-r正则使用
[root@localhost Desktop]# cat iii
abcdef
[root@localhost Desktop]#
[root@localhost Desktop]# tac -r -s 'x\|[^x]' iii ## 一个接着一个字符的反转一个文件
fedcba[root@localhost Desktop]#
4.4.-b参数使用
## 1.-b参数
[root@localhost Desktop]# cat fff
iiiiii:
oooooo:
pppppp:
llllll:
[root@localhost Desktop]# tac -b fff
llllll:
pppppp:
oooooo:iiiiii:[root@localhost Desktop]#
## 2.-b参数详解
## seq 1 3 相当于'1\n2\n3\n'
## tac将'1\n2\n3\n'转为'3\n2\n1\n',-b将'3\n2\n1\n'转为'\n\n3\n21',
## -b相当于将分隔符(换行符\n)全部向前移动2位
[root@localhost Desktop]# seq 1 3 |tac -b
3
21[root@localhost Desktop]#