sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并无 改变,sed只是对缓冲区中原始文件的副本进行编辑,并非编辑原始的文件。除非你使用重定向存储输出或者使用使用sed编辑命令中的w选项。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操做。编辑器
不怎么喜欢理论行的东西,来来来,实践实践~~~
操做的文件为sedfilespa
$sed -e 3a\insertLine sedfile sed '2a insert' sedfile #在第三行后添加 即第三行开始 sed '2i insert' sedfile #在第二行前添加 即第二行开始
Paste_Image.pngcode
$sed -e '2,4d' sedfile #推荐 或者 $sed '2,4d' sedfile #没有-e也是能够的 #删除第二行 $sed '2d' sedfile #要删除第 3 到最后一行 $sed '3,$d' sedfile #注意 d表示删除然而 sed 后面接的是动做须要以单引号括起来
Paste_Image.png文档
$sed '2,5c 这是alic替换的content' sedfile #替换第二到第五行的内容
Paste_Image.pngstring
$sed -n '2,4p' sedfile #显示第二到第四行 $sed -n '二p' sedfile #搜索与二相关的行
Paste_Image.pngio
$sed '/二/d' sedfile #搜索到二相关的行并删除
Paste_Image.pngast
$sed 's/alic/灿/g' sedfile #将alic替换成灿
Paste_Image.pngtest
sed -e '3,4d' -e 's/alic/灿/g' sedfile #删除第三四行 并且同时将alic替换成灿
Paste_Image.pngsed
注意 : 以:为分割,将第一段和最后一段调换位置;+在里面是特殊符号,要脱意用-rfile
sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'g test.txt
经常使用案例 :
sed ‘s/stringa1/stringa2/g’ example.txt 将example.txt文件中的 “string1” 替换成 “string2”
sed ‘/^/d’ example.txt 从example.txt文件中删除全部空白行
sed ‘/ *#/d; /^/d’ example.txt 从example.txt文件中删除全部注释和空白行
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’ 合并上下单元格内容
sed -e ‘1d’ result.txt 从文件example.txt 中排除第一行
sed -n ‘/stringa1/p’ 查看只包含词汇 “string1”的行
sed -e ‘s/ *//’ example.txt 删除每一行最后的空白字符
sed -e ‘s/stringa1//g’ example.txt 从文档中只删除词汇 “string1” 并保留剩余所有
sed -n ‘1,5p;5q’ example.txt 查看从第一行到第5行内容
sed -n ‘5p;5q’ example.txt 查看第5行
sed -e ‘s/00*/0/g’ example.txt 用单个零替换多个零