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. SpringBoot项目启动后再请求远程接口的实现方式

    场景 有一个SpringBoot项目需要在启动后请求另一个远程服务拿取配置,而不是加载过程中去请求,可能会出现类没有实例化的场景,因此需要实现项目完全启动后再进行请求的场景. 解决 一般会有两种实现方 ...

  2. day09-2-验证以及国际化

    验证以及国际化 1.概述 (1)概述 对于输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息 对于验证表单数据,SpringMVC 提供了很多使用的注解,这些注解由 JSR 303验证框 ...

  3. 使用nvm时报错:exit status 1: ļ Ѵ ʱ ޷ ļ 的解决办法

    1.出现问题 如图,安装完nvm后,使用[nvm use 版本号]命令切换版本,出现如题错误,具体截图如下 2.分析原因 1)安装路径是否包含中文 2)安装路径有空格 3)cmd使用是否是管理员方式打 ...

  4. react 项目的性能优化

    react 项目的性能优化有哪些? 1.react 模块化处理 就是将react内容进行模块化划分,一个模块一个组件,react更新机制是组件重新更新 2.在react项目中更新数据,不要直接将 us ...

  5. Diffusers库的初识及使用

    diffusers库的目标是: 将扩散模型(diffusion models)集中到一个单一且长期维护的项目中 以公众可访问的方式复现高影响力的机器学习系统,如DALLE.Imagen等 让开发人员可 ...

  6. JZOJ 4417. 【HNOI2016模拟4.1】神奇的字符串

    不能算解析的解析 很神仙的题 知道做法后很容易实现 这里不写题解 推荐一个:4417. [HNOI2016模拟4.1]神奇的字符串 感谢写此博文的神犇! \(Code\) #include<cs ...

  7. Prometheus插件安装(NodeExporter)

    Prometheus插件安装(NodeExporter) 一,下载安装包并解压 下载地址:https://github.com/prometheus/node_exporter/releases 同样 ...

  8. PostgreSQL事务隔离级别

    一.概念 并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制.PostgreSQL使用了多版本并发控制技术的一种变体:快照隔离San ...

  9. 跟女朋友介绍十个常用的 Python 内置函数,她夸了我一整天

    内置函数是什么 了解内置函数之前,先来了解一下什么是函数 将使用频繁的代码段进行封装,并给它起一个名字,当我们使用的时候只需要知道名字就行 函数就是一段封装好的.可以重复使用的代码,函数使得我们的程序 ...

  10. python 在一个文件夹的所有文件中查找关键字

    python 在一个文件夹的所有文件中查找关键字 import os,shutil import re key='Hello' re_parttern=re.compile(r''+key,re.DO ...