行编辑器sed

sed的工作模式:逐行复制文件到sed编辑器的pattern space(模式空间)进行匹配,不能匹配的行文件默认显示到标准输出,我们也可也加(-n)禁止输出;能匹配到的行文件编辑后显示到标准输出,或者输出到sed编辑器的hold space(保持空间)中 ,通过模式空间与保持空间的互调能将匹配到的文件用更高级的方式显示到标准输出。

sed [OPTION]...  ‘script‘  [input-file] ...

sed不管文件能不能被匹配到,都会显示到标准输出。所以在使用参数p是需要加-n选项

删除:

删除匹配到的文件的最后一行  ~]# sed ‘$d‘ yum.conf

删除匹配到的文件的1到10行  ~]# sed ‘1,10d‘ yum.conf

删除匹配到的文件的偶数行 ~]# sed ‘1~2d‘ yum.conf

删除匹配到的文件的奇数行~]# sed ‘2~2d‘ yum.conf

插入和追加:

在匹配到的文件的行后面追加指定的文本 ~]# sed ‘2~2a\GOOD‘ yum.conf

在匹配到的文件的行前面插入指定的文本 ~]# sed ‘2~2i\GOOD‘ yum.conf

将匹配到的文件的行替换成指定的文本     ~]# sed ‘2~2c\GOOD‘ yum.conf

显示匹配到的每行的行号            ~]# sed ‘2~2=‘ yum.conf

写入文件并保存到指定的文件中

将文件最后一行保存到y.conf中  ~]# sed ‘$w /y.conf‘ yum.conf

将文件y.conf的内容写入到yum.conf文件中的第一行  ~]# sed ‘1r /y.conf‘ yum.conf

最后sed还支持扩展正则表达式,如:将yum.conf文件中以#号开头的行及#号后所有空白字符替换成~

~]# sed ‘[email protected]^#[[:space:]]*@[email protected]‘ yum.conf

时间: 2025-01-14 04:45:43

行编辑器sed的相关文章

行编辑器:sed

sed 行编辑器 语法:sed [option]... 'script' inputfile... 命令选项(option): 常用选项: -n:不输出模式空间内容到屏幕,即不自动打印 (关闭自动打印) -e: 多点编辑 -f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本 (调用脚本文件 ) -r:支持使用扩展正则表达式 -i:直接修改原文件 -i.bak: 先备份文件到.bak并在原处编辑 script: '地址命令' 地址定界: 使用行号,可以是一个简单数字,或是一个行号范

文件处理工具系列(二):行编辑器sed

1.sed介绍 sed(Stream EDitor),是一种行编辑工具,它一次处理一行内容.处理时,把当前匹配到的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令对这些数据做出相应的增删改查操作,处理完成后,默认输出至屏幕,而未被匹配到的行也将默认输出至屏幕.而原来的文件内容并没有发生改变,除非使用重定向存储输出. 2.sed用法 <1>语法格式 sed [option]... 'addressCOMMAND' inputfile...

sed命令行编辑器 【原创】

sed命令行编辑器 sed是非交互式的编辑器,它按行处理对象文件,但不修改处理文件本身,而是逐行读入文件内容并在临时缓存区保存副本并对其进行处理.处理完成每一行就将该行目标内容打印到屏幕,并将该缓存区内容删除,然后读入下一行进行处理.另外需要注意的是,和grep不同,sed不论是否知道指定的模式,它的退出状态都是0(Linux中通常代表真).只有存在语法错误时,sed的退出状态才不是0. 用单引号,双引号没有用 默认修改原文件, -n 静默显示 -i 修改源文件 -e 脚本 -f 指定文件,里面

grep进阶与sed行编辑器

grep进阶与sed行编辑器 上一篇(http://nearlv.blog.51cto.com/2432295/1729198)我们介绍了grep的一些基本的使用方法,其它grep还是一些比较高级的用法,让我们一起来看看. 先来看一下下面例子的运行结果: 相同的命令输出的结果有点不一样,对,这里就是利用"alias"去设置命令的别名,语法格式为"alias="command""即可,可能通过直接在命令行输入"alias"查看当

sed 行编辑器知识汇总

sed 是一种行编辑器,一次处理一行内容,处理时把当前处理的行存储在一个临时缓冲区,称为"模式空间"(pattern space),接着用sed命令处理模式空间中的内容,处理完成后把模式空间中的内容打印到屏幕上,完成一行的编辑.    注:默认情况下sed并不做原地修改,不会修改源文件 sed有两种使用方法 sed [options] command file(s)    直接编写处理命令处理    sed [options] -f scriptfile file(s)    使用预先

sed 行编辑器

sed:行编辑器,默认不处理源文件. -i 直接修改源文件 -eSCRIPT–e SCRIPT 可以同时执行多个脚本 -f/PATH/TO/SED_SCRIPT sed –f /path/to/scripts file -r:表示使用扩展正则表达式 history |sed 's/[[:space:]]//'  使用sed命令history的行空格删掉 1.sed '源地址+编辑命令' 文件 地址:1,100 $最后一行 $-1 倒数第二行 2模式:/正则表达式 /^root/ 3/模式1/,/

文本行编辑器-----sed解密

sed命令 文本处理三剑客: grep, egrep, fgrep:文本过滤器 sed:Stream EDitor,流编辑器,行 awk:文本格式化工具,报告生成器 sed需要理解模式空间和holdspace,下面看看这个图就明白了 sed [OPTION]...  'script'  [input-file] ... 常用选项:-n:不输出模式空间中的内容至屏幕: -e script, --expression=script:多点编辑: -f  /PATH/TO/SED_SCRIPT_FILE

流编辑器sed使用总结及利用sed从文本中提取字符串的方法

sed 是一个编辑器,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的. 这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追加等操作. 流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间. 其参数可能

shell脚本学习笔记 (流编辑器sed)

sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不只支持正則表達式.它另一些比較厉害的功能. 我给出一个样例,大家看看有什么办法能够解决它吧. <html><head><title>Hello World</title> <body>Welcome to the world of regexp!&l