0%

查看庐山真面貌的cat

查看庐山真面貌的cat

.. note::
此去经年,应是良辰好景虚设
宋 柳永《雨霖铃》

cat命令可用于输出文件的内容到标准输出。

cat的官方定义为:

concatenate files and print on the standard output

翻译过来就是:把档案串连接后传到基本输出

其用法一般为:

1
$ cat [OPTION]... [FILE]...

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

  • -n--number: 由 1 开始对所有输出的行数编号
  • -b--number-nonblank: 和 -n 相似,只不过对于空白行不编号
  • -s --squeeze-blank :当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -T--show-tabs:显示TAB字符,显示为^I
  • -E--show-ends:显示行末符号,字符为$
  • -A--show-all:显示所有的信息

此时假定我们的文件为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

实例 :简单显示内容

1
2
3
4
5
6
7
8
9
10
11
$ cat hello.c 

#include <stdio.h>

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

return 0;
}

实例 :显示行号 -n

1
2
3
4
5
6
7
8
9
10
11
$ cat -n hello.c 

1 #include <stdio.h>
2
3 int main(int argc, char * argv[])
4 {
5 printf("Hello World\n");
6
7 return 0;
8 }

实例 : 显示行末

1
2
3
4
5
6
7
8
9
$ cat -E hello.c 
#include <stdio.h>$
$
int main(int argc, char * argv[])$
{$
printf("Hello World\n");$
$
return 0;$
}$

实例:显示空白字符

1
2
3
4
5
6
7
8
9
cat -T hello.c 
#include <stdio.h>

int main(int argc, char * argv[])
{
^Iprintf("Hello World\n");
^I
^Ireturn 0;
}

此时可以看到^I,which means Tab charcter.

加一个管道

比如,此时希望看到你的源码文件一共多少行,每行代表什么意思,就可以把含有行号的输入通过管道发送到另外一个文件,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat -n hello.c > hello_number.c

$ cat hello_number.c

1 #include <stdio.h>
2
3 int main(int argc, char * argv[])
4 {
5 printf("Hello World\n");
6
7 return 0;
8 }

其他的一些选项可以自行尝试。

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

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