sed 非交互式流编辑器
1.默认情况sed不会改变原文件,处理文本时以行为单位,每处理一行就打印出来,然后再处理下一行,直到文件结束
2.编辑动作:删除、查找替换、添加、插入、从其他文件读入数据
3.要保存修改后的文件,使用重定向
4.直接修改源文件本身,使用-i参数
5.使用场景:常规编辑器编辑困难的文件、过于庞大的文件、有规律的文本修改(几百兆的文件),加快处理速度(全文替换)
6.sed [options] 'commands' 文件
options 可接受的参数
commands sed命令集(25个)
commands
1.-e 和分号连接多编辑命令(一般情况可忽略)
sed -e 's/this/That/g' -e 's/line/LINE/g' sed.txt
sed 's/this/That/g ; s/line/LINE/g' sed.txt
2.d删除指定的行
补充:如果希望保存修改后的文件 使用重定向 sed -i '1d' sed.txt > sed1.txt
3.查找替换
s命令可将查找到的匹配文本替换为新的文本,默认情况只替换第一次匹配到的内容,命令g完成所有匹配值的替换
sed 's/line/LINE/'
sed 's/line/LINE/g'
字符转换y
将一系列字符逐个变换为另外一系列字符
插入文本a/i
使用i在第二行之前插入insert
sed '2 i insert' sed.txt
使用i在第二行之后插入insert
sed '2 a insert' sed.txt
读入文本r
从其他文本读入文本 并插入匹配行之后
sed '/^$/r /etc/passwd' sed.txt (插入到空白行之后)
打印p
写文件
默认不改写源文件,只对缓冲区文件做修改并修改到屏幕,如果要保存文件,(除重定向或-i参数)。使用w命令保存到外部文件
sed -n '1,2 w output' sed.txt (output文件前两行是sed前两行的内容)
sed脚本
1.替换this为THAT,并删除空白行
sed.rules
s/this/THAT/g
/^$/d
2.-f参数指定改脚本应用于sed.txt
3.sed -f sed.rules sed.txt
转载于:https://blog.51cto.com/molujiang/2057322