linux每天一小步---sed命令详解

时间:2023-03-08 16:41:56

1 命令功能

sed是一个相当强大的文件处理编辑工具,sed用来替换,删除,更新文件中的内容。sed以文本行为单位进行处理,一次处理一行内容。首先sed吧当前处理的行存储在临时的缓冲区中(称为模式空间pattern space),接着处理缓冲区中的行,处理完成后,吧缓冲区的内容输出到屏幕。sed处理完一行就将其从临时缓冲区删除,然后将下一个行读入,进行处理和显示,这样不断重复直至处理完最后一行内容,sed便结束运行

2 命令语法

sed 【选项与参数-nefri】 '【命令】' 【文件名】

3 选项与参数

-n   使用安静(silent)模式,无-n选项则所有来自标准输入的数据和sed查询到的结果一般都会被列出到终端上,而加上-n后,则只将经过sed处理的结果列出。

-e   进行多项编辑,即对输入行应用多条sed命令时使用,直接在命令模式上进行sed的动作编辑

-f   指定sed命令执行的脚本名,直接将sed【命令】写入到文件中,通过-f参数来指定执行。

-r   指定扩展正则表达式,(不使用-r选项。默认为基本正则表达式)

-i   直接修改文件,不在终端中输出结果

4 命令参数

n1,n2   表示行号,该参数可选,表示操作的行数,可以是数字,正则表达式或者二者结合。用逗号分隔表示n1-n2行的范围

a   新增,表示在当前行的下一行追加一行文本内容。a 的后面可以接字串,而这些字串会在下一行出现

i    插入,表示在当前行的上一行插入一行文本内容。i 的后面可以接字串,而这些字串会在上一行出现

c   替换,以行为单位进行替换,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行

d   删除,因为是删除,所以d后面通常不接任何内容

p   打印,打印行的内容,通常p会与参数-n一起使用

s   替换,替换行中的内容,通常s命令搭配正则表达式使用,如1,20s/linux/linux1/g,如果不跟g,则在行中替换第一个匹配的模式后终止,不在向行后查找,g表示整行查找

=  打印行号

5 使用范例

【1】打印文件中第n行的内容

linux每天一小步---sed命令详解

【2】删除包含字符到包含字符的行之间的行

linux每天一小步---sed命令详解

【3】删除包含字符到第n行的内容

linux每天一小步---sed命令详解

【4】使用模式进行查询

linux每天一小步---sed命令详解

【5】追加一行或多行字符串

linux每天一小步---sed命令详解

linux每天一小步---sed命令详解

linux每天一小步---sed命令详解

注:使用\n来进行换行,使得在一行后追加多条内容

【6】代替一行或多行

linux每天一小步---sed命令详解

【7】代替一行或多行

linux每天一小步---sed命令详解

【8】替换行中的内容

linux每天一小步---sed命令详解

作者:linux每天一小步

出处:http://www.cnblogs.com/westoslinux

如果你真心觉得文章写得不错,而且对你有所帮助,不妨帮忙“推荐"一下,您的“推荐”将是我最大的写作动力!

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!