linux中一些简便的命令之tac/comm

时间:2024-01-03 15:17:08

tac

tac是cat的反写,即反序显示文件内容

如文件a.txt内容如下:

1
2
3
4
5

则tac a.txt打印如下:

5
4
3
2
1

我们可以使用awk来实现tac的功能:

awk '{arr[NR]=$0}END{for(count=NR;count>0;count--)print arr[count]}' a.txt

这只是个列子,我们也可以使用各种循环工具(for/while)来实现tac的命令

comm

comm是比较俩个文件(俩个文件必须是按照顺序排列),并输出3列,第一列是只在前面文件有的内容,第二列是只在后面文件有的内容,第三列是俩个文件都有的内容

文件的排序可以使用命令sort,即sort a.txt

使用方法:comm file1 file2

当然我们也可以指定不显示某列,如不显示第二列(即只在第二个文件中内容不显示),则可以写成:

comm -2 file1 file2

不显示第三列(即俩个文件都有的不显示),则可以显示为:

comm -3 file1 file2

如果显示俩列或者三列,则前面有空格(其实是tab键),我们可以使用tr去掉:

comm file1 file2 | tr -d '\t'