shell 通用命令之文件管理(二)

172 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情

引言

从前种种,譬如昨日死。从后种种,譬如今日生.

您能在这里看到啥

  1. 数据准备
  2. paste
  3. tee

数据准备

经过不断的学习,给自己定一个原则,所有准备数据,都使用命令去创建.这样也把之前学习的文本命令得以巩固.

  1. 创建demo文件夹

    mkdir demo
    
  2. 创建te.txt并写入数据

    cat >te.txt<<EOF
    a
    b
    EOF
    
  3. 创建tes.txt并写入数据

    cat >tes.txt<<EOF
    a
    b
    c
    d
    EOF
    
  4. 第一次创建完成后,结构如下

    tree 
    .
    ├── tes.txt
    └── ts.txt
    
  5. 修改文件名

    由于在创建te.txt文件的时候,一激动.把文件名输成了ts.txt.虽然不影响大局.
    但在我们学习mv指令的时候,是知道可以mv重命名的.那必须搞一搞

    # 把文件名为ts 修改为te
    mv ts.txt te.txt
    
  6. 最终文件结构

    tree
    .
    ├── te.txt
    └── tes.txt
    

paste

  1. 含义

    主要用于合并多个文件内容,并以多列的形式.把所有文件的内容输出显示.

  2. 语法

    paste [参数] [file file1 ....]

    [files ...] : 代表需要合并的文件集

  3. 常用参数

    参数含义
    -d<分隔符>, --delimiters=<分隔符>添加分隔符
    -s,-serial的形式.进行合并处理
  4. 事例

    1. 默认参数

      paste te.txt tes.txt
      

      输出结果:

      截屏2022-12-24 17.22.59.png

    2. -d

      paste -d: te.txt tes.txt
      

      输出结果:

      a:a
      b:b
      :c
      :d
      
    3. -s

      paste -s te.txt tes.txt
      

      输出结果:

      a b
      a b c d
      
    4. 输出内容写入自定义文件

      paste te.txt tes.txt >newtest.txt
      

      查看demo文件夹里结果

      tree
       .
       ├── newtest.txt
       ├── te.txt
       └── tes.txt
      

      查看newtest.txt文件内容

      cat newtest.txt
      a a
      b b
        c
        d
      

    小结一下

    这个命令可以帮助我们解决一些对比.或两个文件内容左右上下排练展示,并以一个文件输出的功能.

tee

经过paste的学习,我们是知道,paste是对多个文件内容的排列输出.那我们怎么同时给多个文件插入用户手动输入的内容.划重点用户手动输入,可不是命令写入哦.想要满足这个需求.就需要用到tee命令.

  1. 含义

    用于把用户输入内容,同时写到配置的文件中,如果文件没有创建,则会自动创建.

  2. 语法

    tee [参数] [file ...]
    
  3. 常用参数

    参数含义
    -a, --append输入内容添加到文件后面. 并非覆盖
    -i, --ignore-interrupts忽略中断信号
  4. 事例

    • 默认参数

      tee te.txt tes.txt 
      同步插入数据
      

      然后查看te.txttes.txt文件内容

      cat te.txt tes.txt
      同步插入数据
      

      从上面的内容输出,我们知道.重新输入的内容,完全覆盖了原有内容

    • -a

      tee -a te.txt tes.txt 
      应该不会覆盖
      

      然后查看te.txttes.txt文件内容

      cat te.txt tes.txt
      同步插入数据
      应该不会覆盖
      

      小细节

      按组合键CTRL+D结束输入功能

命令通用参数

参数含义
--help命令帮助
--version版本信息

学习资料