Linux之cat的使用介绍
cat选项分析
选项解析:
-A, --show-all 等价于 -vET -b, --number-nonblank 对非空输出行(包括仅仅有空格的行)编号,空输出行,指的是该行没有任何内容,即连续2次敲击回车按钮。 -e 等价于 -vE -E, --show-ends 在每行结束处显示 $ -n, --number 对输出的所有行编号,包括空行(连续敲击2次回车键的情况)和非空行。即所有行。 -s, --squeeze-blank 不输出多行空行,注意这里指的是如果有多个连续的空行,那么仅仅输出一个空行(空行指的是没有任何内容的行,实际上该行可能仅仅有1个换行符,如果是最后一行,那么连换行符也没有),注意空格不属于空行。 -t 与 -vT 等价 -T, --show-tabs 将跳 字符显示为 ^I -u (被忽略) -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外,显示非打印字符。打印出非打印字符,如window编辑文档的\r\n,显示为^M
案例:查看当前目录下test.txt的文件的全部内容
[root@iZ25ja2kaemZ ~]# cat ./test.txt
1
2
3
4
5
$$$$
6
78
8
9$
over
案例:-b --number-nonblank 对非空输出行(非空行包括仅仅有空格的行)编号,注意:空行指的是该行没有任何内容,即连续2次敲击回车按钮形成的行。(即空行指的是没有任何内容的行,实际上该行仅仅有1个换行符(连续敲击2次回车形成),或者如果是最后一行,那么连换行符也没有(通过上一行敲击回车))。
[root@iZ25ja2kaemZ ~]# cat -b ./test.txt
1 1
2 2
3 3
4 4
5 5
6 $$$$
7 6
8 78
9 8
10 9$
11 over
12 222
13 333
14
15 333
案例:-n cat 加参数-n ,文件内容输出的同时,都会在所有行(包括空行和非空行)前面加上行号;
[root@iZ25ja2kaemZ ~]# cat -n ./test.txt
1 1
2 2
3 3
4 4
5 5
6 $$$$
7 6
8 78
9 8
10 9$
11 over
12
13 222
14 333
15
16 333
案例:查看./test.txt内容,并且在每行的结尾处附加$符号;
[root@iZ25ja2kaemZ ~]# cat -E ./test.txt
1$
2$
3$
4$
5$
$$$$$
6$
78$
8$
9$$
over$
$
222$
333$
$
333$
案例:cat 可以同时显示多个文件(即同时显示2,3,4,5等多个文件)的内容,比如我们可以在一个cat命令上同时显示两个文件test.txt,test1.txt的内容;
[root@iZ25ja2kaemZ ~]# cat ./test.txt ./test1.txt //亚强:注意第1-16行尾test.txt,第17行之后为test1.txt内容
1
2
3
4
5
$$$$
6
78
8
9$
over
222
333
333
a11
a22
a33
a44
案例:[root@iZ25ja2kaemZ ~]# cat -n ./test.txt ./test1.txt //亚强:注意第1-16行尾test.txt,第17行之后为test1.txt内容,可见cat会连续对2个或更多内容的文件进行编号。
1 1
2 2
3 3
4 4
5 5
6 $$$$
7 6
8 78
9 8
10 9$
11 over
12
13 222
14 333
15
16 333
17 a11
18 a22
19 a33
20 a44
案例:-s命令, --squeeze-blank 不输出多行空行,注意这里指的是如果有多个连续的空行,那么仅仅输出一个空行(空行指的是没有任何内容的行,实际上该仅仅有1个换行符,或者如果是最后一行,那么连换行符也没有),注意有空格不属于空行
[root@iZ25ja2kaemZ ~]# cat -n ./ test5.txt //亚强:文件设计的时候4-6行仅仅存在空格符,10-13是空行。
cat: ./: Is a directory
1 1
2 2
3 3
4
5
6
7 a
8 b
9 c
10
11
12
13
14 d
15 e
16 f
[root@iZ25ja2kaemZ ~]# cat -ns ./ test5.txt//亚强:文件设计的时候4-6行仅仅存在空格符,10-13是空行。可见10-13行仅仅显示了一个空行。
cat: ./: Is a directory
1 1
2 2
3 3
4
5
6
7 a
8 b
9 c
10
11 d
12 e
13 f
[root@iZ25ja2kaemZ ~]#
案例:cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看,即首先显示一页(当前可视范围)内容,然后按下一次enter就显示后面1行数据,注意这里一行指的是当前可是窗口显示一行,不是文件内容用换行符分割的行;
[root@iZ25ja2kaemZ ~]# cat ./test1.txt | more
d54-a91a-6b8038852fce(2270):0.60"
string(154) "insert into questions (ques_id,papers_id,degree,type) values ('e2ebec82-c962-4d54-a91a-6b8038852fce','89',0.60,'解答题(共5小题,满分46分)');"
resource(5) of type (mysql link)
string(15) "试题id:2271"
string(245) "初中数学试卷(1):华师大版(16):七年级上(129)::期末试题(14):页数-1:2011-2012学年四川省资阳市简阳市七年级(上)期末数学试卷(89,100,0.63):与几何语言训练:e6c275e0-3b1c-47aa-83c1-4671
b1132dcb(2271):0.67"
string(136) "insert into questions (ques_id,papers_id,degree,type) values ('e6c275e0-3b1c-47aa-83c1-4671b1132dcb','89',0.67,'与几何语言训练');"
resource(5) of type (mysql link)
string(15) "试题id:2272"
string(269) "初中数学试卷(1):华师大版(16):七年级上(129)::期末试题(14):页数-1:2011-2012学年四川省资阳市简阳市七年级(上)期末数学试卷(89,100,0.63):填空,并在括号内注明说理依据.:b0500f0f-1d8
b-478d-98ba-b2dd5d550ce1(2272):0.50"
string(160) "insert into questions (ques_id,papers_id,degree,type) values ('b0500f0f-1d8b-478d-98ba-b2dd5d550ce1','89',0.50,'填空,并在括号内注明说理依据.');"
resource(5) of type (mysql link)
float(1.5851311683655)
有一个符合题意,请把你认为符
合题意的一项选出来,并把其番号填在题后的括号内,每题3分,共30分)');"
resource(5) of type (mysql link)
string(15) "试题id:2280"
string(434) "初中数学试卷(1):华师大版(16):七年级上(129)::期末试题(14):页数-1:201
4-2015学年四川省遂宁市蓬溪县大石中学七年级(上)期末数学模拟试卷(90,150,0.76):选
择题(下列各题给出的四个选项
,只有一个符合题意,请把你认为符合题意的一项选出来,并把其番号填在题后的括号内,
--more--
案例:[root@iZ25ja2kaemZ ~]# cat ./test3.txt ./test1.txt | more //这里用管道显示多个文件,效果为显示完test3.txt后继续显示text1.txt
综合案例:用管道显示2个文件,并给内容按照换行符进行分割,输出行号。注意more所谓的输出行是按照输出屏幕可视范围的一行,与文件内容的一行数据不同(文件内容一行是按照回车符\n分割的)。
[root@iZ25ja2kaemZ ~]# cat -n ./test3.txt ./test1.txt | more
1 d54-a91a-6b8038852fce(2270):0.60"
2 string(154) "insert into questions (ques_id,papers_id,degree,type) values ('e2ebec82-c962-4d54-a91a-6b8038852fce','89',0.60,'解答题(共5小题,满分46分)');"
3 resource(5) of type (mysql link)
4 string(15) "试题id:2271"
5 string(245) "初中数学试卷(1):华师大版(16):七年级上(129)::期末试题(14):页数-1:2011-2012学年四川省资阳市简阳市七年级(上)期末数学试卷(89,100,0.63):与几何语言训练:e6c275e0-3b1c-47aa-8
3c1-4671
6 b1132dcb(2271):0.67"
7 string(136) "insert into questions (ques_id,papers_id,degree,type) values ('e6c275e0-3b1c-47aa-83c1-4671b1132dcb','89',0.67,'与几何语言训练');"
8 resource(5) of type (mysql link)
9 string(15) "试题id:2272"
10 string(269) "初中数学试卷(1):华师大版(16):七年级上(129)::期末试题(14):页数-1:2011-2012学年四川省资阳市简阳市七年级(上)期末数学试卷(89,100,0.63):填空,并在括号内注明说理依据.:b050
0f0f-1d8
11 b-478d-98ba-b2dd5d550ce1(2272):0.50"
12 string(160) "insert into questions (ques_id,papers_id,degree,type) values ('b0500f0f-1d8b-478d-98ba-b2dd5d550ce1','89',0.50,'填空,并在括号内注明说理依据.');"
13 resource(5) of type (mysql link)
14 float(1.5851311683655)
15 string(76) "http://www.jyeoo.com/math/report/detail/f87560d6-f422-466f-8309-2c49d68c63ba"
16 string(18) "试卷分数:150"
17 string(25) "试卷难度系数:0.76"
--more--
案例:cat有创建文件的功能,创建文件(>)后,要以EOF结束(好像也可以使用STOP结束,亚强测试不行),特别注意:如果创建的文件名在目的目录有重名文件,那么会重写该文件,覆盖掉源文件;
de>[root@localhost ~]# cat > linuxsir.txt << EOF //创建文件linuxsir.txt,并进入编辑状态,<<EOF是进入编辑该文件的状态,方便使用EOF命令来保存并退出编辑状态。如果不用<<EOF,也会自动进入编辑状态,此时可以使用ctry+c来保存并退出该编辑状态。
> 我来测试 cat 创建文件,并且为文件输入内容; // 注:这是为linuxsir.org.txt文件输入内容;
> 北南南北 测试; //注:这是为linuxsir.org.txt文件输入内容;
> EOF // 注:保存并退出编辑状态;
[root@localhost ~]# cat linuxsirtxt //注:我们查看一下linuxsir.org.txt文件的内容;
我来测试 cat 创建文件,并且为文件输入内容;
北南南北 测试;
案例:重写文件测试(即如果新建的目的文件已经存在于目的目录,那么会覆盖掉那个已经存在的文件内容):
[root@iZ25ja2kaemZ ~]# cat test5.txt
i love china!
i also like china!
and also like you!
[root@iZ25ja2kaemZ ~]# cat >test5.txt <<EOF
> HE
> EOF
[root@iZ25ja2kaemZ ~]# cat test5.txt //可见,源文件被覆盖,然后被重写了。
HE
[root@iZ25ja2kaemZ ~]#
案例:cat 还有向已存在的文件追加(>>)内容的功能;
[root@iZ25ja2kaemZ ~]# cat > test5.txt <<EOF//新建文件内容
> i love china!
> EOF
[root@iZ25ja2kaemZ ~]# cat >> test5.txt <<EOF //查看给源文件追加内容,可以看到追加的内容会从源文件的基础上另起一行。
> i also like china!
> and also like you!
> EOF
[root@iZ25ja2kaemZ ~]# cat test5.txt //查看源文件,可以看到追加了内容。
i love china!
i also like china!
and also like you!
[root@iZ25ja2kaemZ ~]#
案例:cat 连接多个文件的内容并且输出到一个新文件中,特别注意:如果目的文件(如此案例的ceshi4.txt)在目的目录已经存在该重名文件,那么该语句会重写该文件,即会覆盖掉源文件,这里亚强不再给出覆盖文件的测试案例。
[root@iZ25ja2kaemZ ~]# cat ceshi1.txt
hello china!
[root@iZ25ja2kaemZ ~]# cat ceshi2.txt
hello beijing!
[root@iZ25ja2kaemZ ~]# cat ceshi3.txt
hello chaoyang!
[root@iZ25ja2kaemZ ~]# cat ceshi1.txt ceshi2.txt ceshi3.txt > ceshi4.txt //将 ceshi1.txt ceshi2.txt ceshi3.txt 这3个文件链接起来并写入到文件ceshi4.txt,注意如果目的目录已经处在ceshi4.txt,那么ceshi4.txt文件会被重写。
[root@iZ25ja2kaemZ ~]# cat ceshi4.txt
hello china!
hello beijing!
hello chaoyang!
cat 把一个或多个已存在的文件内容,追加(>>)到一个已存在的文件中
[root@iZ25ja2kaemZ ~]# cat ceshi1.txt
hello china!
[root@iZ25ja2kaemZ ~]# cat ceshi2.txt
hello beijing!
[root@iZ25ja2kaemZ ~]# cat ceshi3.txt
love you!
[root@iZ25ja2kaemZ ~]# cat ceshi1.txt ceshi2.txt >>ceshi3.txt //亚强:这里讲ceshi1.txt,ceshi2.txt的内容追加到ceshi3.txt文件中。
[root@iZ25ja2kaemZ ~]# cat ceshi3.txt
love you!
hello china!
hello beijing!
案例:打印出非打印字符,如window编辑文档的\r\n,显示为^M
[root@iZ25sngm7hfZ wyq]# cat -v root.sh
#!/bin/bash^M
girl2='wd';^M
echo "see ${girl2}";^M
[root@iZ25sngm7hfZ wyq]# cat root.sh
#!/bin/bash
girl2='wd';
echo "see ${girl2}";
[root@iZ25sngm7hfZ wyq]#
Linux之cat的使用介绍的更多相关文章
- Linux 文件内容查看工具介绍-cat,less,more,tail,head
Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat.more.less.head.tail等,把这些工具最常用的参数. ...
- Linux常见目录及命令介绍
一.Linux中常用的目录介绍: / -根目录 /bin -命令保存目录(普通用户亦可读取的命令) /boot -启动目录,启动相关文件 /d ...
- Rsync,Linux日志及Screen工具介绍
第十六次课 Rsync,Linux日志及Screen工具介绍 目录 一.rsync工具介绍 二.rsync常用选项 三.rsync通过ssh同步 四. rsync通过服务同步 五.linux系统日志 ...
- Linux培训教程 linux中nl命令使用介绍
nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...
- linux中ldconfig的使用介绍
linux中ldconfig的使用介绍 ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享. ldconfig的主要用途: 默认搜寻/lilb和/usr/lib,以及配置文件 ...
- [转] - Linux网络编程 -- 网络知识介绍
(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...
- Window VNC远程控制LINUX:VNC详细配置介绍
Window VNC远程控制LINUX:VNC详细配置介绍 //---------------------------------------vnc linux下的详细配置 1.VNC的启动/停止/重 ...
- 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法
Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...
- Linux显示cat帮助信息并退出
Linux显示cat帮助信息并退出 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ cat --help 用法:cat [选项]... [文件]... 将[文件 ...
随机推荐
- JavaScript之预编译
javascript是一种解释性弱类型语言,在浏览器中执行时,浏览器会先预览某段代码进行语法分析,检查语法的正确与否,然后再进行预编译,到最后才会从上往下一句一句开始执行这段代码,简单得来说可以表示为 ...
- 44道JavaScript送命题
很久以前看过一个老外写的帖子,JavaScript Puzzlers!,直译就是JavaScript难题,里面列举了100道JavaScript选择题,大部分都是让人摸不着头脑的题目,需要仔细琢磨一番 ...
- 不是广告--如何学Java,我说点不太一样的学习方式
首先声明,这篇文章不是卖课程.介绍培训班的广告. 最近有不少读者通过微信问我:小白应该怎么学好 Java? 提问的人里有在校大学生.有刚参加工作的.有想转行做程序员的,还有一部分是最近找工作不顺的. ...
- MySQL数据库缓存操作
安装: 启动的话: -d:以后台的方式进行: -l:选择监听指定的ip服务地址:-m:给他分配多大的内存:-p:端口号默认的端口为11211的服务端口: 另一个: 安装:telnet 这个可以用来测试 ...
- PHP open_basedir配置未包含upload_tmp_dir 导致服务器不能上传文件
在做一个上传图片的功能时候发现后台接收到的$_FILES['file']['error'] = 6,这个错误意思是找不到临时文件,或者是临时文件夹无权限,需要更改php.ini文件的 upload_t ...
- 2019-2020-1 20199325《Linux内核原理与分析》第五周作业
第五周作业主要是选择一个系统调用(13号系统调用time除外),使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,在实验楼Linux虚拟机环境下完成实验. 系统调用的列表参见 http ...
- (第四篇)Linux命令初识之常用系统管理命令
1.hostname [命令作用]用于显示和设置系统的主机名称(但是不会永久保存,重启后会恢复) [命令语法]hostname(选项)(参数) [常用选项] -a:显示主机别名(alias name) ...
- python实现逻辑回归
首先得明确逻辑回归与线性回归不同,它是一种分类模型.而且是一种二分类模型. 首先我们需要知道sigmoid函数,其公式表达如下: 其函数曲线如下: sigmoid函数有什么性质呢? 1.关于(0,0. ...
- Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
开发四年只会写业务代码,分布式高并发都不会还做程序员? Nest.js 6.0.0 正式版发布了.Nest 是构建高效.可扩展的 Node.js Web 应用程序的框架.它使用现代的 JavaSc ...
- 从蓝瘦“想哭”到 SELinux 看操作系统安全何在
最近一周,来自网络的"想哭"勒索病毒(Wannacry Ransomware)在世界各地同时上演了一部绑匪大片,台词华丽,演技出色,当仁不让地新晋世界第一网红.全球各国除了默默忙于 ...