0%

反向显示之 tac

反向显示之 tac

.. note::
未老莫还乡,还乡须断肠。
宋 韦庄《菩萨蛮 人人尽说江南好》

tac命令将文件反向输出,刚好与前面的cat输出相反,cat命令可用于输出文件的内容到标准输出。

这个命令其实就是cat的反向输出,😁

tac的官方定义为:

tac - concatenate and print files in reverse

其用法一般为:

1
$ tac [OPTION]... [FILE]...

tac命令的可选参数[OPTION]如下所示:

  • -b, --before :在行前而不是行尾添加分割标志
  • -r, --regex:将分割标志作为正则表达式来解析
  • -s, --separator=STRING:使用STRING作为分割标志

同样使用前面的hello.c文件,内容为:

1
2
3
4
5
6
7
8
#include <stdio.h>

int main(int argc, char * argv[])
{
printf("Hello World\n");

return 0;
}

接下来的实例全部根据这个文件展开,Hello World. Hello Linux

显示内容

与cat比对输出如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ cat hello.c 
#include <stdio.h>

int main(int argc, char * argv[])
{
printf("Hello World\n");

return 0;
}

$ tac hello.c
}
return 0;

printf("Hello World\n");
{
int main(int argc, char * argv[])

#include <stdio.h>

其他几个参数用的到时不多,不过搭配起来还是有一些帮助的,比如做一个反序输出,搭配使用-s-r参数,如下:

1
2
$ cat 'Hello World.' | tac -r -s "."
.dlroW olleH

这个方法就用到了管道、正则表达式。

处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道