加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux基础教程之文件三剑客sed命令用法介绍

发布时间:2022-07-15 15:49:58 所属栏目:Linux 来源:互联网
导读:sed是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活。 工作原理:sed命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为模式空间(pattern space),接着用sed命令处理缓冲区中的内容,处理
  sed是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活。
          工作原理:sed命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。
 
  sed命令不仅可以查看,筛选文本内容,还可以对一个或多个文本进行编辑,更改,简化对文件的反复操作。
 
          sed中有自己的脚本命令,配合这些脚本文件,sed可以实现许多对文本的索引,编辑功能。
 
  sed命令常用选项:sed [option] ‘script’ file
  option:
  -n :不输出模式空间内容到屏幕,即不自动打印
      -e :多点编辑
      -f :/ PATH/SCRIPT_FILE :  从指定文件中读取编辑脚本
   X:指定的行
  /pattern/:被匹配到的每一行
  )地址范围:
  X1,X2 : 选取第 X1 行到 X2 行之间的行
  X1,+X2 : 选取第 X1 行之后的 X2 个行
  /pat1/,/pat2/ : 选取 pat1 第一次匹配到的行到 pat2 第一次匹配到的行之间的行
  X,/pat1/ : 选取 X 第一次匹配到的行到 pat1 第一次匹配到的行
  )X1~X2 : 步进
  1~2 : 从1开始,步进为2(奇数行)
  2~2 : 从2开始,步进为2(偶数行)
  命令:
 
  d : 删除模式空间匹配的行,并立即启用下一轮循环
      p : 打印当前模式空间内容,追加到默认输出之后
      a []text : 在指定行后面追加文本。支持使用n 实现多行追加
      i []text : 在行前面插入文本
      c []text : 替换行为单行或多行文本
      w : 保存模式匹配的行至指定文件
      r : 读取指定文件的文本至模式空间中匹配到的行后
      = : 为模式空间中的行打印行号
      ! : 模式空间中匹配行取反处理
      s/X/X/g : 查找替换, 支持使用其它分隔符,s@@@ ,s###
      y/XX/XX/ : 检索所有匹配的项,替换为对应的字符
  高级编辑命令:
  P : 打印模式空间开端至n 内容,并追加到默认输出之前
      h : 把模式空间中的内容覆盖至保持空间中
      H : 把模式空间中的内容追加至保持空间中
      g : 从保持空间取出数据覆盖至模式空间
      G : 从保持空间取出内容追加至模式空间
      x : 把模式空间中的内容与保持空间中的内容进行互换
      n : 读取匹配到的行的下一行覆盖至模式空间
      N : 读取匹配到的行的下一行追加至模式空间
      d : 删除模式空间中的行
      D : 如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本
      # : 把注释扩展到下一个换行符以前。
  案列
  基本用法:
  首先我们自己创建了一个方便查看效果的文件newf
 
 
  打印带有字母a或带有字母b的行
 
  把所有b,c都换成a
 
  如果不带g 每行只会替换第一个(默认)匹配到的字符
  g可以换成数字,表示替换匹配到的第几个字符
  可以将字符替换为 空 表示删除
  在第3行前一行插入字符
 
  在第3行后插入字符
 
  将每行第二个字符删除
 
  如图所示,所有的空格被删掉。-r选项支持扩展正则表达式(相当于sed ‘s/^(.)(.)/1/’)另一种方式sed ‘/.//2’ newfsed ”
  把所有abc替换为ABC
 
  -y选项是把前面匹配的项全部对应替换为后面的字符
  进阶用法:
  将1行放到3行后面
 
  保持空间默认有一个空白行
  把1到4行放在5行后面
 
  1h:覆盖掉保持空间中的空白行
  1,4d:删除最前面的4行
  将第1行替换到第3行
 
   
 
  总结:通过一些简单的例子,可以看出sed命令简单,但是功能复杂多样,需要通过大量的练习才能熟练掌握。sed命令在运用中十分重要,它可以批量搜索,显示,修改文本内容,这是必须要学会,并熟练使用的工具。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读