sed命令

时间:2019-08-16
本文章向大家介绍sed命令,主要包括sed命令使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

sed stream EDite

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

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

sed的工作原理:

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

用法:

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

sed [参数] "sed自己独立的用法格式的语句" [文本文件]

常见选项

-n 拒绝默认显示

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

1、所有的 \都不要了 2、| 或者

-e  script for while if

-f  指定脚本文件

-l  指定文本换行的长度

-i  直接修改文件内容(建议不要使用)

地址定界方式

1、数字指定步长

sed -n '1~3s'文件

2、直接匹配数值

3、$指定行尾

sed -n '10,$p'文件

4、/正则/

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

5、0,addr

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

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

6、addr,+N

配置addr行到,addr后N行

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

*常见命令

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

c 替换行

d 删除

sed “1,3d” abc

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

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

*s*文本内容替换

语法格式:s/pattern/字符串/

      中间的/可以替换为任意一个特殊字符  例如: $#### $@@@   $%%%%% 

g 全部

\1\2   和正则表达式的分组相同,实现反向应用;

指定某一个匹配项进行修改替换

&调用前面匹配的内容

sed “s/r...t/&er/g”  文件

给定一个目录,取出其目录名:

--- dirname ----取出文件路径的路径部分

---  base ----  取出文件路径的文件名部分

sed高级空间

 模式空间 --- hold space"占有空间"

原文地址:https://www.cnblogs.com/yjkyjk/p/11365266.html