sed基本用法

sed

stream editor,流编辑器

属于行编辑器,默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕。

模式空间:内存中按某种模式(如,逐行)读取文件并进行编的空间。

编辑器有全屏编辑器(vi)和行编辑器(sed)两种。


sed [OPTIONS] 'AddressCommand' file ...

选项 -n,静默模式,不再默认显示模式空间中的内容,而是显示符合条件的行。

选项 -i ,修改原文

选项 -e SCRIPT -e SCRIPT,可以同时执行多个脚本

选项 -f /PATH/TO/SED_SCRPT,用SED_SCRIPT里的命令逐行处理文件

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

Address

  1、Start line ,End line

10,100,10-100行

$ 最后一行

$-1 倒数第二行

  2、/RegExp/ ,正则表达式

/^root/,所有以root开头的行

若需用到元字符的本意,在其之前加\,进行转义。比如,需搜索含/的行,模式为/\//。

  3、/pattern1/,/pattern2/

第一次被pattern1匹配到的行开始,第一次被pattern2匹配到的行结束,其间所有行。

    4、LineNumber,指定的行

    5、Start Line,+n

Command

  1、d,删除符合条件的行

  2、p,显示符合条件的行

  3、a \"STRING",在指定的行后面追加新行,追加内容为STRING;若需换行,使用换行符\n。

  4、i \"STRING",在指定的行前面添加新行,追加内容为STRING;若需换行,使用换行符\n。

  5、r FILE,将指定文件的内容添加至目标行处

  6、w FILE ,将地址指定的范围内的内容另存至指定的文件中

  7、s /pattern/STRING/,查找并替换

(pattern可以使用正则表达式的元字符,string不行;若需用到元字符的本意,在其之前加\,进行转义)不指定行,默认全文。

默认只替换每行中第一次被匹配到的字符串。

加修饰符(于最后):

g 全局替换。如:'s/@/@#@g',把全文里,每行所有的/换成#。

i 忽略字符大小写

s///=@###=s@@@

& ,String使用pattern引用内容

\(string\),后向引用,\1,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容