简述sed常用操作命令,并举例

sed命令:
文本处理三剑客:
  • grep,egrep,fgrep:文本过滤器
  • sed:stream EDitor,刘编辑器,行
  • awk:文本格式化工具,报告生成器
  • sed [option]…’script’ [input-file]…
  • script:
地址定界编辑命令
  • 常用选项:
  • -n:不输出模式空间中的内容至屏幕;
  • -e script,–expression=script 多点编辑
  • -f /path/to/sed_script_file 命令多时可以用 从文件中取出命令
  • 每行一个编辑命令;
  • -r:–regexp-extended:支持使用扩展的正则表达式;
  • -i [suffix],–in-place[=suffix]:直接编辑原文件;
  • sed -e ‘s@^#[[:space:]]*@@’ -e ‘/^UUID/d’ /etc/fstab
地址定界:
  • 1.空地址:对全文进行处理;
  • 2.单地址:
  • #:指定行
  • /pattern/: 被此模式匹配到的每一行;
  • 3.地址范围
  • #,#
  • #,+#
  • #,/pat1/
  • /pat1/,/pat2/
  • $ 标识最后一行
  • 4.步进:~
  • 1~2:所有奇数行
  • 2~2:所有偶数行
编辑命令:
  • d:删除
  • p:显示模式空间中的内容;
  • a:\text:在匹配到的行 下一行追加内容,支持使用\n 实现多行插入
  • sed ‘3a \new line\nanother new line’ /etc/fstab
  • i:\text:在匹配到的行 上一行追加内容,支持使用\n 实现多行插入
  • sed ‘/^UUIDa \new line’ /etc/passed
  • c:匹配到的行替换为给出的内容
  • w /path/to/somefile 保存范围内的内容到指定的路径
  • r:/path/from/somefile 读取指定位置的文件至当前文件被模式匹配到的行后面,文件合并;
  • =:为模式匹配到的行打印行号;
  • !:条件取反;
  • 地址的后面,命令的前面
  • s///:查找替换,其分隔符可自行指定,常用的有s@@@,s###
  • 替换标记
  • g:全局替换
  • w:/path/to/somefile 将替换成功的结果保存至指定文件中
  • p:显示替换成功的行
高级编辑命令:
  • h:把模式空间中的内容覆盖至保持空间中;
  • H:把模式空间中的内容追加至保持空间中;
  • g:把保持空间中的内容覆盖至模式空间中;
  • G:把保持空间中的内容追加至模式空间中
  • x:把模式空间中的内容与保持空间中的内容互换;
  • N:追加读取匹配到的行的下一行至模式空间中;
  • n:覆盖读取匹配到的行的下一行至模式空间中;
  • d:删除模式空间中的行
  • D:删除多行模式空间中的所有行
示例:
sed -n ‘n;p’ file; 显示偶数行
sed ‘1!G;h;$!d’    逆序显示文件的内容
sed ‘$!d’ file     取出最后一行
sed ‘$!N;$!D’ file 取出文件后两行
sed ‘/^$/d;G’ file 删除原有的所有空白行,而后为所有的非空白行添加一个空白行
sed ‘n;d’ file  显示奇数行
sed ‘G’ file 在原有的每行后添加一个空白行

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100527

(1)
墨武墨武
上一篇 2018-06-07
下一篇 2018-06-07

相关推荐

  • 迁移/home目录到新的分区上步骤

    迁移/home目录到新的分区上步骤 1、 安装一个新的硬盘 2、 查看新硬盘的设备名,如下图所示: 3、 在新硬盘上创建一个主分区,如下图所示: 4、 将新创建的分区格式化为ext4文件系统,并加上/home卷标,如下图所示: 5、 创建/home目录临时挂载点,并将分区挂载到临时挂载点上,如下图所示: 6、 切换单用户,将除了root用户之外的用户踢出,如…

    2018-04-27
  • Homework_week4

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。       cp -a /etc/skel /home/tuser1       chmod 700 /home/tuser1 2、编辑/etc/group文件,添加组hadoop。       echo “ha…

    Linux笔记 2018-06-27
  • 入门——Linux基础

    一:用户登录 root用户:管理员账户,也被称为超级用户,root拥有对Linux系统的所有权限,甚至可以把自己杀死(rm -rf /*),除非必须,一般不用root用户登录系统 普通用户:权限受到限制,只可以对自己有权限的文件进行操作 二:终端(terminal) 终端: 设备终端:鼠标,键盘,显示器 物理终端:控制台(/dev/console) 虚拟终端…

    2018-03-28
  • 马哥的第一节课

    雄关漫到
    跋山涉水

    Linux笔记 2018-07-22
  • 第二周笔记

    ### 4 月2日笔记 – #### IO重定向“`I:input指的是标准输入 描述符用0表示O:output指的是标准输入 描述符用1表示标准错误 描述符用2表示“`一般文件或者命令的标准输入是指的键盘,标准输出是值得终端窗口。我们用重定向来改变他们的方向大于号> 表示标准输出:把输出内容定向到一个文件中&#82…

    Linux笔记 2018-04-01
  • Linux 基础

    Linux 基础 一.计算机组成及其功能 当今计算机采用冯·诺依曼架构,必须具备的五大基本组成部件,包括: 1.输入数据和程序的输入设备 2.记忆程序和数据的存储器 3.完成数据加工处理的运算器 4.控制程序执行的控制器 5.输出处理结果的输出设备 计算机基本组成结构图 二.Linux的发行版,不同发行版之间的联系与区别 1.Linux 严格来说Linux是…

    2018-05-12

评论列表(1条)

  • 马哥教育
    马哥教育 2018-06-15 08:51

    建议多练习命令的各种用法。sed各种用法 在企业里面用的比较多