第六课-第二讲06_02_sed命令正则表达式
灵活按照咱们须要充分处理文件要掌握三大利器:grep,sed(流编辑器),awk(报告文本生成器)编辑器
1.sed的基本用法-sed=Stream Editor--操做纯ascii的文本的,他是逐行处理文本的,因此也叫行编辑器(与之相对的叫全屏编辑器:vi)
sed工做机制:并不直接处理文本文件自己,而是每次读取一行到内存空间,在内存中完成编辑,而且将编辑结果输出到屏幕,将模式空间中的内容输出到屏幕。这段内存空间叫sed的模式空间。默认状况下不编辑原文件,仅对模式空间中的数据作操做
sed [option] {scripts} {file}
sed 'AddressCommand' file,file2,file3,.......
Address:
1)指定起止行,start_line,end_line ,如:1,100--第1行到第100行
2)/RegExp/使用模式,使用正则表达式的模式
/^root/
3)/pattern1/,/pattern2/ 这个文件当中第一次被pattern1模式1匹配到行开始到第一次被pattern2模式2匹配到的行结束中间的全部行
4)LineNumber 指定的行,$表示最后一行
5)StartLine,+N 从给定的起始行开始向后的N行ide
Command:
d:表示删除符合条件的行
P:打印,显示符合条件的行
a \string :在符合条件的行后面追加新行,内容为string
i \string :在符合条件的行前面追加新行,内容为string(\n 有将string 显示为两行,其实\n就是换行符)
r FILE :将指定的文件的内容添加至符合条件的行处---合并文件
w FILE :将地址指定范围的行另存至指定的文件中code
s/pattern/string/:查找并替换,默认替换每行中第一次被模式 匹配到的字符串(注意该string中不可用使用regexp),该行后面 还有符合匹配条件的也不去替换,要所有替换要加修饰符, 修饰符: g:全局替换 i:查找时忽略大小写 sed的分隔符就是“/”,能够用其余的符号代替 s/// s### s@@@ &: 引用模式匹配整个串
Option
-n: 静默模式,不显示模式空间内容,只显示命令处理结果
-i:直接修改原文件
-e SCRIPT -e SCRIPT -e SCRIPT :能够同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts file
-r:表示使用扩展正则表达式regexp