千家信息网

shell sed流编辑器

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,sed介绍sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed不会改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到
千家信息网最后更新 2024年12月12日shell sed流编辑器

sed介绍

sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed不会改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到标准输出中。

sed处理文本时是以行为单位的,每处理完一行就立即打印出来,然后再处理下一行,直至全文处理结束。sed可做编辑动作包括删除、查找替换、添加、插入、从其他文件读入数据等。

sed命令使用的场景包括以下一些:

常规编辑器编辑困难的文本。

太过庞大的文本,使用常规编辑器难以胜任(如vi一个几百兆的文件)。

有规律的文本修改,加快文本处理速度(比如说全文替换)。

sed命令的功能十分强大,由于sed本身的复杂度,以及和正则表达式的结合,使用sed命令非常难以掌握。只有不断的多读用,才能深刻的理解和记住sed的功能。

sed常用的命令:

sed命令 作用

a 在匹配行后面加入文本

c 字符转换

d 删除行

D 删除第一行

i 在匹配行前面接入文本

h 复制模板块的内容到存储空间

H 追加模板块的内容到存储空间

g 将存储空间的内容复制到模式空间

G 将存储空间的内容追加到模式空间

n 读取下一个输入行,用下一个命令处理新的行

N 追加下一个输入行到模板块后并在二者间插入新行

p 打印匹配的行

P 打印匹配的第一行

q 退出sed

r 从外部文件中读取文本

w 追加写文件

! 匹配的逆

s/old/new 用new替换正则表达式old

= 打印当前行号

sed常用的参数:

sed参数 作用

-e 多条件编辑

-h 帮助信息

-n 不输出不匹配的行

-f 指定sed脚本

-V 版本信息

-i 直接修改原文件








0