sed命令

1、Linux文本处理三剑客之 sed(Sed stream EDite)

作为行编辑器,对文本进行编辑(以行为单位编辑)

注意:sed编辑文件,却不改变原文件

2、Sed的工作原理:

指定一个文本文件,依次读取文本文件中每行内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配,对匹配后的文本内容进行修改(替换、删除、打印、修改、保存)。

3、用法:

sed [参数] “sed自己独立的用法格式语句”

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

4、常见选项

 -n  不显示默认输出的内容

-r  指定使用扩展的正则表达式

匹配IP

  所有的\都不要

|或者

-e  script  for while if

-f  指定脚本文件

-l  指定文本换行的长度?

5、地址定界方式

(1)直接匹配数值

sed -n ‘5-7’

(2)d~步长

(3)$ 指定行尾

(4)/正则/

/正则1/,/正则2/

sed -n `/k\{5,\}/,$p` abc

sed -n `^(fd\)\+/.+2p` abc //正则写在前面没有问题,但写在后面会出现问题

(5)0,addr

addr可以为数字/$/正则表达式

sed -n `0,/k\{5,\}/p` abc

(6)addr,+N

配置addr行到,addr后N行

sed -n `/fd/,+5p` abc

6、常见命令

p  print 打印(默认在屏幕上显示出来),建议和-n一起使用;

c  替换

sed "/aaa/c \A" a

d  删除

sed "/aaa/d" a

sed "1,3d" a

n  N读取/添加 模式匹配到的下一行内容,再对其进行操作;

w  保存文件内容到一个新的文件

sed "/patthen/w 新的文件名"y原来的文件名

sed "/k/w /tmp/aabbcc" abc

*s*文本内容替换,默认替换模式空间匹配到的第一项;

语法格式: s/pattern/字符串/       //中间的/可以替换为任意一个特殊字符

常见命令:g   全部

\1\2 h和正则表达式的分组相同,实现反向应用;(指定某一个匹配项进行修改替换)

& d调用前面(pattern)匹配的内容

sed "s/r..t/&er/g"w文件

转载于:https://www.cnblogs.com/www-k/p/11379257.html