• cat


    一、简介

    1.concatenate   /kən'kætɪneɪt/  拼接

    2.cat不会改变原文件的任何数据,只是根据用户提供的选项,在stdout中生成一个修改过的输出。

    二、技巧

    1.stdin ——> 文件(拼接数据)

    [root@localhost 1]# echo "I Love U,too" | cat - test.txt 
    I Love U,too
    I Love U!
    [root@localhost 1]# cat test.txt 
    I Love U!         

    说明:

      (1)cat不会改变原文件的任何数据

      (2)本例中,-被作为stdin文本的文件名

    2.文件 ——> stdout(读取文件)

    [root@localhost 1]# cat file1 file2 file3
    1`
    2`
    3`

    说明:

      (1)可打印多个文件内容 

    3.连续的空白行 ——> 一行空白行(压缩)

    [root@localhost 1]# cat file1
    1`
    
    
    
    2`
    [root@localhost 1]# cat -s file1
    1`
    
    2`

    说明:

      (1)cat -s将连续的空白行压缩成一行空白输出(consecutive)

    4.显示制表符和行号

    [root@localhost 1]# cat -T file1
    1`^I
    hello world!
    [root@localhost 1]# cat -n file1
         1    1`    
         2    hello world!

    说明:

      (1)cat -T将制表符tab记为^I

      (2)cat -n在输出的每一行内容之前加上行号

    5.创建文件

    [root@localhost 1]# ll
    total 0
    [root@localhost 1]# cat “i am handsome” > newfile.txt
    [root@localhost 1]# ll
    total 4
    -rw-r--r-- 1 root root 14 Apr  6 18:23 newfile.txt

    说明

      (1)cat在打开输入文件之前,会先创建新的输出文件,且可以重定向至该文件。

    6.清空文件

    [root@localhost 1]# echo 'i love u' > newfile.txt 
    [root@localhost 1]# cat newfile.txt > newfile.txt 
    cat: newfile.txt: input file is output file
    [root@localhost 1]# ll
    total 0
    -rw-r--r-- 1 root root 0 Apr  6 18:28 newfile.txt

    说明:

      (1)cat不允许使用输入文件作为重定向输出文件(有报错)此时会清空文件所有内容!!!

    [root@localhost 1]# echo 'i love u' > newfile.txt 
    [root@localhost 1]# cat newfile.txt | cat -n > newfile.txt 
    [root@localhost 1]# ll
    total 0
    -rw-r--r-- 1 root root 0 Apr  6 18:30 newfile.txt

    说明:

      (1)cat利用管道符可以执行输入文件作为重定向输出文件(无报错)此时会清空文件所有内容!!!

    7.查看文件信息

     7.1查看系统的发行版本

    [root@localhost linux]# cat /etc/redhat-release 
    Red Hat Enterprise Linux Server release 7.5 (Maipo)

    7.2查看登陆的欢迎信息

    [root@localhost linux]# cat /etc/issue
    S
    Kernel 
     on an m

     7.3查看当前支持的shell

    [root@localhost linux]# cat /etc/shells 
    /bin/sh
    /bin/bash
    /sbin/nologin
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh

     7.4查看某个进程的环境变量

    [root@localhost linux]# ps -aux     #查看所有程序的PID
    [root@localhost linux]# pgrep httpd   #查看某个程序的PID
    9416
    9420
    9421
    9422
    9423
    9424
    [root@localhost linux]# cat /proc/9416/environ                #格式就是cat /proc/$UID/environ,查看某个进程的环境变量
    LANG=CPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binNOTIFY_SOCKET=/run/systemd/notify[root@localhost linux]# 
    [root@localhost linux]# cat /proc/9416/environ | tr '' '
    '      #将输出格式变的易读
    LANG=C
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
    NOTIFY_SOCKET=/run/systemd/notify
  • 相关阅读:
    [Swift-2019力扣杯春季初赛]2. 校园自行车分配
    php 遇到报错 Call to a member function fetch_object()
    Proactive Patching Overview
    PHP 官方说明
    SecureCRT 迁移到新环境,导出配置文件目录 转
    ORA-00020: maximum number of processes (300) exceeded
    转 SQL*PLUS中的替换变量(& &&)
    转 DOS(CMD)下批处理换行问题/命令行参数换行 arg ms-dos
    php 报错如下:Notice: Trying to get property of non-object
    mysqli 进一步分析
  • 原文地址:https://www.cnblogs.com/ytdyz/p/12643496.html
Copyright © 2020-2023  润新知