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

命令参数:

-A, --show-all           等价于 -vET

-b, --number-nonblank    对非空输出行编号

-e                       等价于 -vE

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

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

-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行

-t                       与 -vT 等价

-T, --show-tabs          将制表符显示为 ^I

-u                       (被忽略)

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

使用实例:

打印多个文件,并加上行号

[root@LAMP test]# cat -n demo_cat1.sh demo_cat2.sh
#/bin/bash
echo hello
echo world
#/bin/bash
echo hello
echo world[root@LAMP test]#

删除额外的空白行

[root@LAMP test]# cat -n demo_cat3.sh
#/bin/bash
echo hello echo world
[root@LAMP test]# cat -n -s demo_cat3.sh
#/bin/bash
echo hello echo world

将制表符显示成^I

[root@LAMP test]# cat -T demo_cat1.sh
#/bin/bash
^Iecho hello
echo world

显示断行标志

[root@LAMP test]# cat -v demo_cat1.sh
#/bin/bash
echo hello
echo world
[root@LAMP test]# cat -v demo_cat2.sh
#/bin/bash^M
echo hello^M
echo world

其中demo_cat1.sh是在Linux下编辑的,而demo_cat2.sh是在windows下编辑的,可以看出两个操作系统的断行标志是不同的,这也是为什么很多脚本在windows下编辑下上传到Linux下报错的原因。

利用cat -A更加清晰的看出两者的不同,DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的。

[root@LAMP test]# cat -A demo_cat1.sh
#/bin/bash$
^Iecho hello$
echo world$
[root@LAMP test]# cat -A demo_cat2.sh
#/bin/bash^M$
^Iecho hello^M$
echo world[root@LAMP test]#

拓展:

cat命令还可以接受标准输入,并打印到屏幕

[root@LAMP test]# cat <<EOF
> hello
> world
> EOF
hello
world

或者将标准输入重定向到一个文件中

[root@LAMP test]# cat >demo.txt <<EOF
> hello
> linux
> EOF
[root@LAMP test]# cat demo.txt
hello
linux

在脚本中的应用:

[root@LAMP test]# vim demo_cat.sh 

#/bin/bash
cat <<EOF
****Main Menu*****
[] Start
[] Shutdown
[] Restart
[] Exit
EOF

运行结果:

[root@LAMP test]# sh demo_cat.sh
****Main Menu*****
[] Start
[] Shutdown
[] Restart
[] Exit

Linux命令之乐--cat的更多相关文章

  1. 每天一个linux命令:cat(10)

    cat cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用 注意:当文件较大时,文本在屏幕上迅速 ...

  2. linux 命令——文件管理 cat

    一.介绍 cat 是一个文本文件查看和连接工具.从第一个字节开始正向查看文件的内容. 主要有三大功能: 1.一次显示整个文件.$ cat   filename ~,y6;e2.从键盘创建一个文件.$ ...

  3. linux命令之cat

    转自:http://www.cnblogs.com/peida/archive/2012/10/30/2746968.html cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容, ...

  4. 每天一个linux命令(10):cat

    1.命令简介 cat (concatenate,连接)命令将[文件]或标准输入组合输出到标准输出,如果没有指定文件,或者文件为"-",则从标准输入读取. 2.用法 cat [选项] ...

  5. 2018/03/07 每日一个Linux命令 之 cat

    每日一个Linux命令 2018-03-07 Linux 命令 cat cat [-参数] fileName 在之前的Linux使用中 cat 命令一直作为文本输出指令来使用,很少可以深入学习的该命令 ...

  6. 每天一个linux命令:cat 命令

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

  7. linux 命令——10 cat (转)

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

  8. Linux命令学习-cat命令

    Linux中,cat命令的全称是concatenate,主要用于显示文件内容. 查看centos系统版本 cat /etc/centos-release 查看文件 gogs.log 的内容 cat g ...

  9. 全网最详细的Linux命令系列-cat命令

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

随机推荐

  1. WCF深入浅出学习1

    1.本文主要对WCF的基本使用做简单化介绍,对于初学WCF的来说,初期对于配置文件的理解,比较烦躁吧,相信你看完了该文,能够达到深入浅出的感觉. 关于WCF的概念 和 应用场景,在此处不做详细介绍,可 ...

  2. 多线程之 ThreadStart 和 ParameterizedThreadStart 委托

    先看微软如何给出的方法使用,如下查看,我们发现,如下两个委托,分别对应带参数创建线程 和 不带参数创建线程. 下列 委托 方法不带参数 ThreadStart namespace System.Thr ...

  3. HDU 4280Island Transport(网络流之最大流)

    题目地址:pid=4280">http://acm.hdu.edu.cn/showproblem.php? pid=4280 这个题是一个纯最大流模板题..就是用来卡时间的.. 还好我 ...

  4. java 并发编程 list

     并发编程 Mark 以后看 http://cmsblogs.com/ http://www.jianshu.com/p/456b984c00b7

  5. AutoFac文档7(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 适配器 和 装饰器 A ...

  6. Genymotion INSTALL_FAILED_CPU_ABI_INCOMPATIBLE

    出现这个错误的原因是Genymotion默认的处理器是x86的,不是arm的.所以安装的时候会出错,仅仅要把x86转换成arm就能够了. 转换方法: 1.下载转换的zip文件:X86 to ARM 2 ...

  7. PCI & PCIE Configuration Register Space

    1.PCI-Compatible Configurationbits [1:0] are hard-wired, read-only and must return zeros when read.b ...

  8. CControlLayer

    #ifndef __CONTROLLAYER_H__ #define __CONTROLLAYER_H__ #include "XWidget.h" class CMapDialo ...

  9. CSectsInfomation.cpp文件

    #include "SectsInfomation.h" #include "WidgetMgr.h" #include "XButton.h&quo ...

  10. vue中config/index.js:配置的详细理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...