sed:流编辑器

1.sed:Stream Editor   行处理工具,流编辑器

对文件内容逐行进行处理调用操作并显示到STDOUT

工作流程:

(1)sed默认不编辑原文件,而是逐行操作,复制一份到指定内存(pattern space,模式空间)

(2)pattern space内进行模式匹配,即和指定条件做匹配

不满足模式:输出到标准输出STDOUT

满足模式:进行指定的模式操作,再输出到STDOUT

(3)第二个特殊的内存空间   hold space:保持空间,临时保存操作在另一处内存

(4)当执行pattern space和 hold space相关选项时候回进行之间的数据流编辑操作

(5)最后根据操作执行hold space空间操作,选择性显示到STDOUT

2.格式:sed  [OPTION]…    {script-only-if-no-other-script}  [input-file]…

其中{script-only-if-no-other-script}:指的是AddressCommands,地址界定执行命令

AddressCommands中间无空格,直接连接为一个选项操作

============ sed  [OPTION]…    AddressCommands    [input-file]…==============

(1)OPTION常用选项

-n:不输出模式空间中的内容至屏幕;

-e script, --expression=script:多点编辑;

-f  /PATH/TO/SED_SCRIPT_FILE   : 每行一个编辑命令;

-r, --regexp-extended:支持使用扩展正则表达式;

-i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ;

(2)地址定界

1)空地址:什么都不填写时,表示对全文进行处理

2)单地址

#:表示对指定的行

/pattern/:被此模式所匹配到的每一行,其中模式两边的/不能省略

3)地址范围  (#表示任意数字)

#,#:从某行到某行,第二个#大于第一个#

#,+#:从某行开始加多商行

#,/pattern1/:从某行开始到第一次配到模式的行

/pattern1/,/pattern2/:从第一次匹配到的模式1到第二次匹配到哦的模式2

4)步进:~,#~#   从第几行

1~2:所有奇数行。从第一行开始,每次加两行读取

2~2:所有偶数行。从第二行开始,每次加两行读取

(3)编辑命令

d:删除;

p:显示模式空间中的内容;

a  \text:在行后面追加文本“text”,支持使用\n实现多行追加;

i  \text:在行前面插入文本“text”,支持使用\n实现多行插入;

c  \text:把匹配到的行替换为此处指定的文本“text”;

w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中;

r  /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;

=:为模式匹配到的行打印行号;

!:条件取反;

地址定界!编辑命令;

s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等;

替换标记:

g:全局替换;

w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

p:显示替换成功的行;

    练习1:删除/boot/grub/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符;~]# sed  's@^[[:space:]]\+@@' /etc/grub2.cfg练习2:删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符;~]# sed  's@^#[[:space:]]*@@'  /etc/fstab练习3:输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname;~]# echo "/var/log/messages/" | sed 's@[^/]\+/\?$@@'~]# echo "/var/log/messages" | sed -r 's@[^/]+/?$@@'

3.pattern space和hold space编辑命令操作

(1)常用选项

h:把模式空间中的内容覆盖至保持空间中;

H:把模式空间中的内容追加至保持空间中;

g:把保持空间中的内容覆盖至模式空间中;

G:把保持空间中的内容追加至模式空间中;

x:把模式空间中的内容与保持空间中的内容互换;

n:覆盖读取匹配到的行的下一行至模式空间中;

N:追加读取匹配到的行的下一行至模式空间中;

d:删除模式空间中的行;

D:删除多行模式空间中的所有行;

(2)实例演示

sed  -n  'n;p'  FILE:显示偶数行;

sed  '1!G;h;$!d'  FILE:逆序显示文件的内容;

sed  ’$!d'  FILE:取出最后一行;

sed  '$!N;$!D' FILE:取出文件后两行;

sed '/^$/d;G' FILE:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行;

sed  'n;d'  FILE:显示奇数行;

sed 'G' FILE:在原有的每行后方添加一个空白行;

转载于:https://blog.51cto.com/12686444/2331226

Linux基础命令之sed用法相关推荐

  1. linux命令shutdown -r,linux基础命令shutdown的用法详解

    搜索定时关机命令shutdown,发现我的博客少了一个shutdown命令,今天就补充一下,当然服务器上自己man或–help也可以解决了.开始内容补充: 由于Linux的关机与重启是一个非常重要的命 ...

  2. linux基础命令怎么记,linux基础命令--笔记(示例代码)

    linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .hel ...

  3. Linux系统运行时参数命令--Linux基础命令和工具

    目录 1 Linux基础命令和工具 1.1 grep搜索字符 1.2 find查找文件 1.3 ls显示文件 1.4 wc命令 1.5 ulimit用户资源 1.6 scp远程拷贝 1.7 dos2u ...

  4. linux 关机命令_小猿圈Linux基础命令汇总

    科技进步的今天,互联网不断的发展,很多人学习Linux运维的时候会因为记不住一些命令从而去找一些渠道,有时候因为找不到linux的命令而烦恼,下面是小猿圈linux讲师给大家总结的linux基础命令, ...

  5. Linux基础命令与进阶

    目录标题 Linux基础命令与进阶 关机命令 Linux 用户/用户组 1.增加一个用户组 2.删除一个用户组 3.修改用户组的属性 4.添加用户账号 5.删除帐号 6.修改帐号 7.用户口令的管理 ...

  6. linux复制后权限变化,学霸Linux基础命令吐血总结,给你当新华字典用

    Linux基础命令学习笔记 一.登录Linux [root@linux~]# root:目前使用者账户 @之后接的内容:主机名称 root为管理员账户 #:提示字元(对于root账户) $:提示字元( ...

  7. Linux基础命令-进程与系统性能

    Linux基础命令-进程与系统性能 进程与系统性能 一.进程相关概念 1.进程概念 2.进程的基本状态和转换 3.IPC进程间通信 4.进程优先级 5.进程状态 二.进程与系统性能 1.系统管理工具 ...

  8. Linux 基础命令 -- usermod

    命令介绍 命令:usermod 修改用户 用法:usermod [options] usermod 用户 命令选项 [root@fp-21 ~]# usermod --help-c, --commen ...

  9. Linux基础命令-tar打包压缩文件

    Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客 Linux三剑客-grep命令_Linux学习中的博客-CSDN博客 Linux文件管理命令(3)-mv改动文件_Linux ...

最新文章

  1. 前端优化系列之一:dns预获取 dns-prefetch 提升页面载入速度
  2. uboot更改gpio电平_ECBM系列教程4:单片机的手和脚——GPIO
  3. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(5)--(P4P的解析解)
  4. java access 不在本地_线上的java项目访问不到线上数据库,但是这个数据库我本地可以连接到,求解...
  5. CIF、QCIF、HD1、D1格式介绍
  6. PHP 常见header 状态
  7. U-mail邮件系统对故障的紧急措施有哪些?
  8. Java之volatile
  9. “21天好习惯”第一期-12
  10. AI与大众最近的接触——智能语音交互
  11. PostgreSQL(2)常用命令(附教程)
  12. 弱键(Weak Key, ACM/ICPC Seoul 2004, UVa1618)
  13. 计算机应用技术在医院的应用,计算机管理技术在医院的应用
  14. inception v2、inception v3、inception v4
  15. DOOM启世录的启示
  16. KMplayer保存上次播放位置
  17. 庞博 上海交大计算机系,那个脱口秀的段子手——交大帅哥庞博
  18. 微软官方原版本下载msdn
  19. DDD领域驱动设计-视频讲解+实战
  20. 除了知网、百度,还有什么查阅资料的网站或软件吗?

热门文章

  1. 吴恩达机器学习(十五)大规模机器学习(Batch、Stochastic、Mini-batch gradient descent、MapReduce)
  2. SpringCloudSpringBootmybatis分布式微服务云架构-hystrix参数详解
  3. 如何在firefox下获取下列框选中option的text
  4. servlet中filter的的异步问题以及JSP与servlet配合时filter的注意
  5. 计算机中丢失ENWeb,webapi session 丢失
  6. html 倒计时关闭对话框,jquery倒计时广告特效代码 可关闭的js倒计时
  7. 【第7篇】Python爬虫实战-收集gitee中的issue问题
  8. 如何在服务器上部署若依开源框架?(Linux版)
  9. dofilter在java中_在Filter的doFilter中进行重定向 出现异常
  10. java imap收邮件_android pop3与imap方式接收邮件(javamail)