linux每日命令(11):cat命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

一.命令格式:

cat [参数] [文件]...

二.命令功能:

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

三. 命令参数

参数

描述

-n

--number , 由1开始对所有输出的行数编号

-b

--number-nonblank, 和 -n 相似,只不过对于空白行不编号。

-s

--squeeze-blank,当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v

--show-nonprinting , 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

-E

--show-ends , 在每行结束处显示 $

-T

--show-tabs,将 TAB 字符显示为 ^I。

-A

--show-all , 等价于 -vET

-e

等价于 -vE

-t

与 -vT 等价

四. 使用实例

1. 将file1的文档内容覆盖到file2中

命令:

不带行号覆盖内容

cat file1 > file2

带行号覆盖内容

cat -n file1 > file2

输出:

hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
hc@hc-virtual-machine:~/test$ cat file1 > file2
hc@hc-virtual-machine:~/test$ cat file2
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat -n file1 > file2
hc@hc-virtual-machine:~/test$ cat file2
     1  我是file1的第一行
     2  我是file1的第二行

2. 将file1的内容追加到file2的内容中

命令:

不带行号追加

cat file1 >> file2

带行号追加(空白行不加行号)

输出:

hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行




我是file2的第6行
hc@hc-virtual-machine:~/test$ cat file1 >> file2
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行




我是file2的第6行
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat -b file2 >> file1
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
     1  我是file2的第一行




     2  我是file2的第6行
     3  我是file1的第一行
     4  我是file1的第二行
hc@hc-virtual-machine:~/test$ 

说明:

>是重新编辑内容,>> 是追加内容

3. 清空file1文档内容

命令:

cat /dev/null > file1

输出:

hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
     1  我是file2的第一行




     2  我是file2的第6行
     3  我是file1的第一行
     4  我是file1的第二行
hc@hc-virtual-machine:~/test$ cat /dev/null > file1
hc@hc-virtual-machine:~/test$ cat file1
hc@hc-virtual-machine:~/test$ 

4. 倒序输出file2中的内容

命令:

tac file2

输出:

hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行




我是file2的第6行
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ tac file2
我是file1的第二行
我是file1的第一行
我是file2的第6行




我是file2的第一行
hc@hc-virtual-machine:~/test$ 

说明:

tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在屏幕上,而 tac 则是由最后一行到第一行反向在屏幕上显示出来!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

android 优化之布局优化

布局优化的思路很简单,尽量减少布局文件的层级,看过系统源码的都知道,Android view绘制都是逐层绘制的,所以布局的层级少了,decodeview的时候绘...

23160
来自专栏前端人人

React技巧4(如何处理List里面的Item)

本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React 技巧1(状态组件与无状态组件的使用) --...

35680
来自专栏大数据钻研

如何编写简练清晰的HTML代码?

如何提升 Web 页面的性能,很多开发人员从多个方面来下手如 JavaScript、图像优化、服务器配置,文件压缩或是调整 CSS。 很显然 HTML 已经达到...

54260
来自专栏漫漫全栈路

ASP.NET MVC学习笔记03视图

早在ASP.NET MVC 3就引入了Razor视图引擎( Razor view engine)。Razor视图模板文件使用.cshtml文件扩展名,并提供了...

33230
来自专栏vue学习

20、分类详情页之数据渲染

然后复制一系列就是我们左侧栏的各个标题了,记住这里的每个标题的id要和首页各个分类名的id相对应。

24520
来自专栏前端知识分享

第32天:微博发布动态

13730
来自专栏Android小菜鸡

自定义组件——ModuleView

  ModuleView是一个模快化的View。可以快速搭建一个常用的模块页面,显示不同模块的数据内容。它的难点在于解决ScrollView与RecyclerV...

10910
来自专栏更流畅、简洁的软件开发方式

页面回发后,让页面自动滚动到指定位置的一种简单的方法

最近某客户做实施,顺便完善一下程序。突然找到了一个老问题的解决方法。 就是当用户按一个按钮后,希望回发后的页面滚到一个指定的位置,而不是页面的开头部分。以...

39470
来自专栏娱乐心理测试

微信小程序自定义组件(Toast)

微信官方的wx.showToast这个API用起来限制性太强,在正式项目上根本用不上,但是又没有其他组件或API可以替代,所以就自己通过网上大神的方法自己写了一...

23530
来自专栏天天

微信小程序中自定义组件solt的使用

我们会发现,在自定义模板中有一对<code><slot></slot></code>,这里是干什么用的呢?在组件模板中可以提供一个 <slot> 节点,用于承载...

2.3K20

扫码关注云+社区

领取腾讯云代金券