zoukankan      html  css  js  c++  java
  • Linux命令之乐--cat

    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 
         1    #/bin/bash
         2        echo hello
         3    echo world
         4    #/bin/bash
         5        echo hello
         6    echo world[root@LAMP test]#

    删除额外的空白行

    [root@LAMP test]# cat -n demo_cat3.sh 
         1    #/bin/bash
         2    echo hello
         3    
         4    
         5    echo world
    [root@LAMP test]# cat -n -s demo_cat3.sh 
         1    #/bin/bash
         2    echo hello
         3    
         4    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下的文本文件是以 作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以 作为断行标志的。

    [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*****
                     [1] Start
                     [2] Shutdown
                     [3] Restart
                     [4] Exit
    EOF

    运行结果:

    [root@LAMP test]# sh demo_cat.sh 
            ****Main Menu*****
             [1] Start
             [2] Shutdown
             [3] Restart
             [4] Exit
  • 相关阅读:
    开发servlet三种方式
    puppet 启动失败
    linux 内核 中链表list
    software level
    ubuntu 使用 root “sudo /bin/bash”
    linux 内存管理
    linux kernel "current" macro
    hello.hs haskell
    ubuntu samba
    微信小程序中使用 npm包管理 (保姆式教程)
  • 原文地址:https://www.cnblogs.com/zydev/p/5797660.html
Copyright © 2011-2022 走看看