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. ASP.NET Core 系列总结

    <ASP.NET Core> 系列文章基于 .NET 3.1 和 .NET 6,主要是系统总结自己日常工作和学习中的知识点,之前是自己在 OneNote 上自己写,作为学习.总结笔记,逐渐 ...

  2. spring cloud alibaba - Nacos 作为配置中心基础使用

    1.简要说明 Nacos提供了作为配置中心的功能,只需要在Nacos的控制台页面添加配置,然后在项目中配置相应的"路径"就好. 主要分为几个步骤: 在Nacos控制台添加配置 在项 ...

  3. H5商城项目源码 (可预览 测试有效)

    商城简介 这个商城项目由首页模块,发现模块,购物车模块以及我的等四大模块组成了33个相关内容界面 预览下载直通车 预览地址 首页模块 首页拥有搜索模块.分类模块.内容模块组成 发现模块 发现模块主要是 ...

  4. 限流器算法实现(JUC原子类使用实践)

    系列文章目录和关于我 一丶限流器存在的意义 在高并发系统中,出于系统保护角度考虑,通常会对流量进行限流. 限流*的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,通过对流量速率进行限制,当达到限制速 ...

  5. Os-ByteSec

    Os-ByteSec 目录 Os-ByteSec 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 2 服务漏洞利用 2.1 检测smb服务漏洞 2.2 GetShell 3 提权 3.1 尝试提 ...

  6. STM32L431 移植 LiteOS 时 _ebss _Min_Heap_Size _Min_Stack_Size 未找到或未定义

    将 LiteOS 移植完成之后,编译报如下错误: 环境 版本 Keil V5.37.0.0 Windows11 2022/12/22 ARM::CMSIS 5.9(2022-05-22) 开发板 ST ...

  7. AirTest

    1.环境 直接安装AirTest IDE 就可以了 2.连接手机 打开开发者模式,允许Usb调试,手机在电脑界面显示出来即可 3.Airtest辅助窗 4.Poco辅助窗 新建一个air文件 在poc ...

  8. angular - 另一个ID为#######的进程当前正在运行ngcc

    angular项目启动时报错 首先尝试npm install再次运行,看看它是否可以解决您的问题. 尝试ngcc手动运行. 删除这个文件 node_modules/@angular/compiler- ...

  9. windows10 远程桌面黑屏

    [计算机配置]-[管理模板]-[Windows组件]-[远程桌面服务]-[远程桌面会话主机]-[远程会话环境]-{为远程桌面连接使用WDDM图形显示驱动程序-设置禁用}

  10. 【剑指Offer】【链表】复杂链表的复制

    题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否则判 ...