linux学习之路之sed命令使用
本章主要介绍sed的命令使用
sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器。
sed的工作原理:
逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上。而这种内存空间也叫做模式空间。
所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去。
说明:sed命令默认将文件中所有的行打印到屏幕上去。
sed命令默认不会修改源文件内容,只是产生显示的效果。
sed命令的使用用法:
sed [option] ‘AddressCommand‘ [FILE...]
option:
-n:静默模式,sed命令默认会将文件中所有的行打印出来,加上-n表示只有符合模式匹配的行才
打印到屏幕上显示出来
-i:直接修改原文件
-e SCRIPT1 -e SCRIPT2..:可以同时执行多个脚本(这里的脚本指的是‘AddressCommand‘)
-f /path/to/sed_script:这是个脚本文件是存放sed的脚本命令的,每一行都是一个脚本,这个命令的作
用就是将脚本文件中的每一条命令加载到命令行来执行,进而对指定文件中符合模式的行编辑处理。
使用方法形如:sed -f /path/to/sed_script FILE
-r:表示支持正则表达式
Address:原来寻找文件中符合条件的行
地址的定界有一下5种
1、指定StartLine,EndLine
例如:第1到第100行 这样表示:1,100
2、/ReGExp/ :使用模式中的正则表达式来定位
例如:找到以root字符串开始的行,可以这样表示:/^root/
3、/pattern1/,/pattern2/
匹配的是:从pattern1第一次匹配的行开始,到pattern2第一次匹配的行结束,这中间所有的行
4、LineNumber:指定的第几行
5、StartLine,+n:匹配从第StartLine行起,向后的N行,共匹配N+1行
Command:
d:删除指定的行
p:显示符合条件的行
a \string:指定行的后面追加新行,新行的内容为‘string‘
i \string:指定行的前面追加新行,新行的内容为‘string‘
r:将指定的文件添加到符合条件的行
w:将指定范围内的内容另存至指定的文件中
s/pattern/string/修饰符:字符串的替换;注意:string是不可以使用元字符的,因为他不是模式
默认不加修饰符表示只替换每一行中第一次匹配到的字符串
g:表示全局替换
说明:替换符不仅仅只限于/来表示,#,@等都可以原来表示替换符
&:只能引用模式匹配的整个字符串
后向引用:可以引用自己想要引用的字符串,可以是全部,也可以是部分
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。