sed命令

  Linux文本处理三剑客 之 sed
  sed stream EDite
  作为行编辑器,对文本进行编辑(以行为单位进行编辑)
  注意:sed编辑文件,却不改变原文件;

sed的工作原理:

  指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存等)

  用法:
  sed [OPTION]... {script-only-if-no-other-script} [input-file]...
  sed [参数] “sed自己独立的用法格式的语句”[文本文件]
  常见选项
    -n 拒绝默认显示
    -r  指定使用扩展的正则表达式
    -e script   for while if
    -f 指定脚本文件
    -l  指定文本换行的长度?
    -i  直接修改文件内容(不要使用)

地址定界方式

  1、直接匹配数值
    sed -n '5p' 文件
  2、 d~步长      
    sed -n '1~3p' 文件
  3、$  指定行尾
    sed -n '10,$p' 文件
  4、/正则/
    /正则1/,/正则2/
    sed -n '/k\{5,\}/,$p' abc
  5、0,addr
    addr 可以为 数字/$/正则表达式
    sed -n '0,/k\{5,\}/p' abc
  6、addr,+N   
    配置addr行到,addr后N行
    sed -n '/fd/,+5p' abc

  **常见命令
    p  print  打印(默认在屏幕上显示出来) 建议和 -n 一起使用;
    c  替换
      sed "/aaa/c \A" a
    d 删除
      sed "/aaa/d" a
      sed "1,3d" a
    n N  读取/添加  模式匹配到的行的下一行内容,再对其进行操作
    w 保存文件内容到一个新的文件
      sed "/patthen/w 新的文件名" 原来的文件名
      sed "/k/w /tmp/aabbcc" abc
    *s*  文本内容替换,默认替换模式空间匹配到的第一项;
      语法格式: s/pattern/字符串/
      中间的 / 可以替换为任意一个特殊字符 例如:s### s@@@ s%%%%
    g   全部
    \1 \2   和正则表达式的分组相同,实现反向应用;
    指定某一个匹配项进行修改替换
    &  调用前面(pattern)匹配的内容
      sed "s/r..t/&er/g" 文件

sed的高级应用

    模式空间  --  hold space"占有空间"

    dirname --  取出文件路径的路径部分
    basename  --  取出文件路径的文件名部分

shell_Day06的更多相关文章

随机推荐

  1. VSCode一键接入Notebook体验算法套件快速完成水表读数

    摘要:本示例围绕真实AI需求场景,介绍VSCode一键接入Notebook体验算法套件快速完成水表读数的使用流程. 本文分享自华为云社区<VSCode一键接入Notebook体验算法套件快速完成 ...

  2. 【踩坑记录】单测中@PostConstruct多次执行

    问题复现: 单测中@PostConstruct修饰的方法被多次执行 原因: @PostConstruct在Spring中常用于在构造函数后初始化对象,执行顺序如下: 构造方法->成员变量注入-& ...

  3. Vue 03 VisualStudioCode 搭建一个Vue 框架 的详细流程

    转:https://blog.csdn.net/A_awen/article/details/122345082 1 下载VisualStudioCode 1.1 官网下载地址 https://cod ...

  4. 基于JavaScript的OpenGL 01 之Hello Triangle

    1. 引言 本文基于JavaScript语言,描述OpenGL(即,WebGL)的绘制流程,这里描述的是OpenGL的核心模式(Core-profile) 笔者这里不过多描述每个名词.函数和细节,更详 ...

  5. IO相关了解

    1.IO的概念 IO简单来讲就是对输入输出设备的简化表达形式 单片机中各种接口,进行数据流的传输 从磁盘中读取数据至内存,又或者从内存中写入磁盘 编程中的IO 此时的IO其应用程序的运行态,即进程-- ...

  6. python中time模块的常用方法的转换关系图

    获取当前的时间戳 把时间戳转换成了时间的格式 获取时间 把时间格式数据转换为易识别的字符串 获取到表示时间的字符串,再转换为时间数据.

  7. LeetCode-1669 合并两个链表

    来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-in-between-linked-lists 题目描述 给你两个链表 list1 和 lis ...

  8. HDFS存储流程及HA

    HDFS架构 主从(Master/Slaves)架构 由一个NameNode和一些DataNode组成 NameNode负责存储和管理文件元数据,并维护了一个层次型的文件目录树 DataNode负责存 ...

  9. Fun Day

    The Good Wife Seaon 3 Episode 7  -----bgm is so magical as I laugh over and over again

  10. 了解ASP (一)

    1. ASP是什么? ASP 指 Active Server Pages (动态服务器页面), 是在 IIS 中运行的程序.ASP 文件的扩展名是 ".asp" 2. ASP与HT ...