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的使用介绍的更多相关文章

  1. Linux 文件内容查看工具介绍-cat,less,more,tail,head

    Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat.more.less.head.tail等,把这些工具最常用的参数. ...

  2. Linux常见目录及命令介绍

    一.Linux中常用的目录介绍:     /        -根目录     /bin    -命令保存目录(普通用户亦可读取的命令)     /boot    -启动目录,启动相关文件     /d ...

  3. Rsync,Linux日志及Screen工具介绍

    第十六次课 Rsync,Linux日志及Screen工具介绍 目录 一.rsync工具介绍 二.rsync常用选项 三.rsync通过ssh同步 四. rsync通过服务同步 五.linux系统日志 ...

  4. Linux培训教程 linux中nl命令使用介绍

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  5. linux中ldconfig的使用介绍

    linux中ldconfig的使用介绍 ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享. ldconfig的主要用途: 默认搜寻/lilb和/usr/lib,以及配置文件 ...

  6. [转] - Linux网络编程 -- 网络知识介绍

    (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...

  7. Window VNC远程控制LINUX:VNC详细配置介绍

    Window VNC远程控制LINUX:VNC详细配置介绍 //---------------------------------------vnc linux下的详细配置 1.VNC的启动/停止/重 ...

  8. 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法

    Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...

  9. Linux显示cat帮助信息并退出

    Linux显示cat帮助信息并退出 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ cat --help 用法:cat [选项]... [文件]... 将[文件 ...

随机推荐

  1. SpringBoot+Netty+WebSocket实现实时通信

    这篇随笔暂时不讲原理,首先搭建起一个简单的可以实现通信的Demo.之后的一系列随笔会进行一些原理上的分享. 不过在这之前大家最好了解一下Netty的线程模型和NIO编程模型,会对它的整体逻辑有所了解. ...

  2. 解决sublime打开文档,出现中文乱码问题

    sublime text 软件中出现中文乱码,大多是因为编码格式不支持,需要安装一个插件就可以解决中文乱码问题,推荐安装 ConvertToUtf8  安装步骤: 1.按“shift + ctrl + ...

  3. Caused by: java.lang.NumberFormatException: For input string: " 60"

    原因 原原因:string转int 格式出错 解决:我的输入文件格式在根据“,”分割完之后多出了一个空格,我想要的是“60” 但是分割完之后是“ 60”所以导致格式转换不匹配.

  4. VIM 批量缩进4个空格

    vim  /etc/vimrc  或  vim  ~/.vimrc set smartindent set shiftwidth= 按v选中多行,回车 然后shifit + >

  5. jQuery学习(二)

    操作DOM对象: 修改文本: jQuery对象的text()和html()方法可以用来获取节点的文本内容和HTML文本.而当你给方法传入参数时,这两个方法可以被用于设置jQuery的文本内容. 还是以 ...

  6. vim的四种工作模式(转载别人的)

    Vim操作的四种模式 Vim的四种模式一.启动Vim1.双击桌面的图标,就可以启动Vim(是图形界面的)2.在开始菜单---点--运行 接着输入 vim 或者gvim,就可以启动Vim或Gvim了.二 ...

  7. mysql-case..when知识点总结

    case...when..有两种语法: 第一种: case  case_value when when_value  then statement_list [when when_value  the ...

  8. 在Vue中使用iview的Select控件实现一个多级选项列表

    前言 今天项目要实现一个多级选项列表,发现iview官网上没有写这个例子,于是自己就实现了,如果对你有帮助请点个赞 ‘ * ’!! 解决方法:下面我们就来使用V-for 来定义一个二级选项列表 ,代码 ...

  9. rabbitmq添加自启动 centos7环境

    1.编辑一个启动脚本 [root@xxx ~]# vim /usr/local/rabbitmq/sbin/start_rabbitmq.sh 内容如下(根据自己的实际位置做替换即可) #!/bin/ ...

  10. python恺撒密码 与 字符串反码 【chr()与ord()函数的两种不同应用】

    恺撒密码  描述 恺撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:‪‬‪‬‪‬‪ ...