文本处理工具之---sed

sed,Stream editor的缩写,功能很强大,可以进行文本替换删除打印等,与grep、awk不同的是,它侧重点在于整行的编辑;

它的工作过程是,首先将文件分成以行为单位,然后将每一行逐次的放入缓冲区(模式空间),sed将其处理完毕后发送到标准输出,处理完最后一行sed便运行结束。由于sed是对存储在缓冲区的文件进行辑,因此,sed不会修改或者损坏正在编辑的文件。

sed的用法: sed [OPTION]... ‘script‘ [input-file]...

sed的选项参数比较少,主要有这么几个:

-n, --quiet,--silent:对不能匹配模式的行,默认不输出到屏幕

-e script, --expression=script:多条件编辑

-f,script-file, --file=script-file:从指定的script-file中读取脚本

注意:最好用绝对路径

-i[SUFFIX],--in-place[=SUFFIX]:在原文件直接进行编辑操作  不要轻易用

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

处理命令Command:

不同于grep的pattern,这里command不仅包含了正则表达式所匹配的模式,而且还包含了对匹配进行处理的命令。同时,sed的匹配是以‘/’开头和结尾的,中间包含着对文本的匹配模式,如/^less/就是匹配所有以less开头的行。而在匹配之后跟着的是对匹配结果的处理命令,例如/^less/d就是将所有以less开始的行删除;

命令有如下几个:

=:显示被模式匹配的行的行号

例如:sed -n ‘/^$/=‘ /etc/grub2.cfg

a \text 追加

i \text 插入

c \text 替换

d  在模式空间中删除被模式匹配的行;所以这样的行不能再进行标准输出

注意:使用d命令的时候不要使用-n选项;

p:显示模式空间中被模式匹配的行

注意:通常搭配-n选项

w filename:把匹配到的行另存到一个文件中

r filename:将这个文件的内容追加到模式空间中被模式匹配的行之后

!Command:在模式空间中被模式匹配的行

s///:查找替换,分隔符可以任意更换,只要相同就可以

[email protected]@@,s###,s,,, ...

s/pattren/text/[control]

例如:sed [email protected]/etc/[email protected]/etc/[email protected]

pattren

text:要替换成的内容,纯文本

control:如何进行替换

g:行内全部替换

p:显示替换成功的行

w file:保存到

举例:

删除包含root的行

# sed ‘/root/d‘ file

删除从root行开始到whj行结束之间所有的行

# sed ‘/root/,/whj/d‘ file

删除第1行到第5行之间所有的行

# sed ‘1,5d‘ file

删除所有不包含Sam的行

# sed ‘/Sam/!d‘ file

将包含Sam行的love改成hate

# sed ‘/Sam/s/love/hate/g‘ file


删除每行后三个字符

# sed ‘s/...$//‘ file

时间: 2024-11-03 05:28:05

文本处理工具之---sed的相关文章

Linux系统上的文本处理工具之sed

sed命令 sed是一种在线编辑器.行编辑器,一次处理一行内容,在处理时,把当前处理的行存储在临时缓冲区当中,该缓冲区称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出:然后紧接着去处理下一行,重复完成相同的操作,直至文件结尾:sed处理的整个过程中,对象文件中的内容并没有改变,除非使用重定向来存储处理后的结果.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作过程. sed跟我们之前讲过的文本处理工具vi

关于文本处理工具之SED

处理文本的工具sed 行编辑器:         sed 是一种流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,我们称为"模式空间"        接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理以下一行,这样不断重复,直到文件末尾.        文件内容并没有改变,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等 还有一种模式叫做保持空间:sed工作机制是每次读取一行文本至'

文本处理工具之SED流编辑器

文本处理三剑客之SED(流编辑器) sed的工作方式:在指定文件中,按行读取内容至模式空间,然后根据sed的scripts编辑改行内容,编辑完毕后输出至屏幕,再读取下一行进行处理.如果有该行内容未被处理完毕就有新的内容要进行编辑,则把该行内容移至保持空间中,,保持空间中的内容可以随时调回模式空间中. sed的使用 使用格式:sed [options...] 'scipts' file 常用选项: -n:不输出模式空间中的内容至标准输出(不自动打印) -e script:多点编辑sed -e '[

文本处理工具之sed

sed 行编辑器 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.然后读入下行,执行下一个循环. 如果没有使诸如'D' 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间.这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重 定向存储输出. 功能 主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序

Linux文本处理工具之sed

概念: sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓存区中,称为"模式空间(pattern space)",接着用舍得命令处理缓冲区中的内容,处理完成后,把缓存区的内容输出.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你是用重定向存储输出.sed主要用来编辑一个活多个文件. 格式: sed [-nefri] 'command' 输入文本 常用选项: -n:使用安静(silent)模式.在一般sed的用法中,所有来自STDIN的资

处理文本的工具sed,vim 编辑器的使用   Linux版

处理文本的工具sed Stream EDitor 行编辑器 sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾. 一次处理一行 文件--->内存空间--->屏幕 模式空间 文件--->内存空间--->屏幕 | 保持空间 sed   -n:不输出模式空间内容的自动打印 -e:多点编辑 -f:/PATH/TO/SCRIPT_FIL

DAY8:文本处理工具sed和vim

8月8号,主要学习内容为: 一.文本处理工具sed 二.vim编辑器 一.文本处理工具sed 1)简介 sed是一种流编辑器,它一次处理一行内容.处理时,把 当前处理的行存储在临时缓冲区中,称为"模式空间"( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕.接着处理下一 行,这样不断重复,直到文件末尾.文件内容并没有改变 ,除非你使用重定向存储输出.Sed主要用来自动编辑一 个或多个文件,简化对文件的反复操作,编写转换程序等. 用

文本处理工具grep和sed的用法

正则表达式:Regual Expression ReGEXP 基本正则表达式:BRE 扩展正则表达式:ERE 作用:文本搜索工具,根据用户指定的"模式(PATTERN)"对目标文本进行逐行匹配检查,并打印匹配到的行. 模式(PATTERN):由正则表达式的元自负及文本字符所编写出的过滤条件. grep[OPTIONS]PATERN[FILE] grep[OPTIONS][-e PATTERN][FILE] [OPTIONS]: --color=auto:对匹配到的文本着色高亮显示(Ce

shell之三大文本处理工具grep、sed及awk

grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更强大而已,且已独立成一种语言来介绍. grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多: sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed: awk:报告生成器,格式化以后显示.如果对处