文本三剑客之二:sed

原理: 

sed是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到最后一行.每当处理一行时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.

作用:

读取大文件时不会出现卡顿现象

1.基本用法

格式:     sed [option]...'script;script;...' [inputfile]

常用选项:

-n     不输出模式空间的内容到屏幕,即不自动打印

-e     多点编辑

-f file     从指定文件中读取编辑脚本

-r, -E     使用扩展正则表达式

-i.bak    备份文件并原处编辑

-s     将多个文件视为独立文件,而不是单个连续的长文件流

script的格式: '地址命令'

其中地址的格式:

对于命令的格式:

p     打印当前模式空间内容,追加到默认输出之后

Ip     忽略大小写输出

   删除模式空间匹配的行,并立即启用下一轮循环

a [\]text     在指定行后面追加文本.支持使用\n实现多行追加

i [\]text     在行前面插入文本

c [\]text     替换行为单行或多行文本

w file     保存模式匹配的行至指定文件

r file     读取指定文件的文本至模式空间中匹配到的行后

=     为模式空间中的行打印行号

   模式空间中匹配行取反处理

q     结束或退出sed

s/pattern/sring/修饰符      查找替换,支持使用其他分隔符,可以是其他形式: s@@@,  s###

g     行内全局替换

p     显示替换成功的行

w     /PATH/FILE  将替换成功的行保存至文件中

I,i     忽略大小写

2.高级用法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容