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. C语言中的快排函数——qsort

    函数名 qsort(); 头文件 include<stdlib,h> 功能 对数组内的元素进行默认升序的快速排序 函数声明 void qsort( void *buf, size_t nu ...

  2. spring-in-action-day04-配置属性 @ConfigurationProperties

    1.Spring环境抽象的概念 2.怎么配置属性.在application.yml举例一些常用的配置 3.自定义配置属性@ConfigurationProperties(prefix = " ...

  3. 详解Redisson分布式限流的实现原理

    摘要:本文将详细介绍下RRateLimiter的具体使用方式.实现原理还有一些注意事项. 本文分享自华为云社区<详解Redisson分布式限流的实现原理>,作者: xindoo. 我们目前 ...

  4. C#通过OLEDB将DataTable写入Excel文件中

    利用OLEDB将DataTable数据写入Excel文件中,如果数据量过多,执行效率很缓慢,大数据量不推荐使用此方法. /// <summary> /// 创建DataTable /// ...

  5. Session和Shiro的Session区别

    tomcat中的session常出现为jsessionId,而shiro的session不相同,两者的id不同. 在controller中,通过 request.getSession(_) 获取会话 ...

  6. Linux 下安装Nginx两种方法- yum安装 and Centos7下yum安装配置nginx与php

    转载csdn: Linux 下安装Nginx两种方法- yum安装_在电脑前深思的博客-CSDN博客 Linux安装Nginx(两种方式)_HHRunning的博客-CSDN博客_linux 是否安装 ...

  7. 解决npm安装时出现run `npm audit fix` to fix them, or `npm audit` for details

    解决办法: 网上说遇到这种问题可能是npm需要升级,有些下载不下来, 这样就好使用: 1.删除已经安装的:node_modules 和 package-lock.json 2.在安装:npm inst ...

  8. centos7配置vue环境

    1.安装nodejs #下载源码 wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz #解 ...

  9. dom4j解析和生成xml文件

    解析xml大致步骤: 1: 创建SAXReader: 2: 使用SAXReader解析指定的xml文档信息,并返回对应Document对象.Document对象中就包含了该xml文中的所有信息以及结构 ...

  10. 【补题】The 2022 SDUT Summer Trials

    比赛链接 The 2022 SDUT Summer Trials A. Ginger's number 样例恶臭(恼) 签到题 简单分解因数就会发现要求的就是\(gcd\),直接算即可,时间复杂度\( ...