sed :stream editor for filtering and transforming text 文本编辑器,逐行处理文本(vi 全屏编辑器)
模式空间(内存空间):符合模式条件的做处理,然后输出到屏幕
默认不编辑源文件,仅对模式空间中的数据做处理
sed 'AddressCommand' file
-n:静默模式,不再默认显示模式空间中的内容
-i:修改源文件
-e Script -e Script :可以同时执行多个脚本
-f /path/to/sed_script 把script执行到文件
-r 使用扩展正则表达式
Address:
1. StartLine,EndLine
$表示最后一行 ,$-1 倒数第二行
2. /regexp/
3. /pattern1/ , /pattern2/ 第一次被pattern1匹配到的行开始至 第一次被pattern2匹配到的行结束,中间的所有行
4. Line numbe 指定的行
5.Startline,+n 从指定的行开始,向后n行
Command:
d:删除符合条件的行
p:显示符合条件的行
a string:在指定的行后面追加新行,内容为string
用于换行
i string 在指定行的前面添加新行
r FILE :将指定文件的内容添加至符合条件的行处
w FILE:将地址指定范围内的内容另存至指定的文件中
s /pattern/string/修饰符:查找并替换,默认只替换每一行中第一次被模式匹配到的字符串
加修饰符
g:全局替换
i:查找时,忽略字符大小写
s/// s###
后向引用:
(、啊啊啊) 1
&
实例:把当前目录下所有文件中的出现LOAD DATA 的行,下面添加 CHARACTERSET AL32UTF8
表示换行
sed -i "s/LOAD DATA/LOAD DATA CHARACTERSET AL32UTF8/g" `ls`