格式:sed [-nefri] [动作] 其中n/e/f/r/i 动作有a,i,c,p,s-n 默认把sed命令执行的结果,与原来的数据一起输出到屏幕,如果加了-n,则只显示sed处理后的内容 sed -n '1p' sed.txt a 在匹配的当前行的后面添加内容,add sed '/Simple/ahelloworld' sed.txt world后面有符号/则会直接显示出来 i 在匹配的当前行的上面添加内容,insert sed '/Beautiful/ihelloyou' sed.txt & 在当前行匹配字符串的行尾添加字符串 sed 's/than/&hellworld/' sed.txt 则直接在than的后面添加字符串hellworld c 把该行替换成c后面的字符串 sed '2,4c hello world' sed.txt 2-4行的内容替换成hello worlds 旧字符替换新字符,行数s/旧字符串/新字符串/g sed 's/than/hello/' sed.txt sed 's/than/hello/g' sed.txt sed '2s/than/hahaha/' sed.txt 匹配第二行的 sed '2,4s/than/hahaha/' sed.txt 匹配第二行到第四行的 /pa/s/pa1/pa2/ 查找包含pa的行,然后把该行的第一个匹配pa1的字符串替换为pa2 /pa/s/pa1/pa2/g 查找包含pa的行,然后把该行所有的匹配pa1的字符串替换为pa2,g即代表global sed '/Beautiful/s/than/hahaha/' sed.txt sed '/Beautiful/s/than/hahahah/g' sed.txt sed '/by/s/^/hello/' sed.txt 在包含by行的头加上hello sed '/by/s/^/&hello/' sed.txt p 输出,默认 sed '1,3p' sed.txt 显示匹配的1-3行内容和原来内容 sed -n '1,3p' sed.txt 只显示匹配行的内容 sed -n '2p;$p' sed.txt 显示第二行和最后一行的内容,中间用分号隔开,多行可以sed -n '2p;3p;$p' sed d 删除 sed '/start/ ,/end/d' file 删除包含第start行到第end行之间的所有行内容 sed '/start/, 8d' file 删除包含第start行到第八行的内容 sed '1d' sed.txt 删除第一行 sed '2,3d' sed.txt 删除第二到三行 sed '/Simple/,$d' sed.txt 删除匹配行到最后一行 -e 多个命令组合,对文件内容执行多条sed命令条件 sed -e '/Simple/s/better/worse/' -e '/Flat/s/better/good/' sed.txt ; 多个命令组合,注意引号位置 sed -e '/Complex/s/than/less/ ; /Flat/s/than/well/' sed.txt 变量引用,需要先设置变量,不能用系统变量 abc=123sed "s/Simple/$abc/g" sed.txt -i 把sed命令修改的结果直接写入到文件里去,一般用来编辑文件内指定内容,屏幕不输出内容 如果要对所做的修改保存到原文件,则要加上-i,就会直接修改原文件内容 sed -i '/bash/s/bin/sbin/' sed.txt -f 指定执行sed脚本的文件名,可以把常用的或者是command比较长的内容写到一个文件中 vim sedcommands/Simple/difficult/ sed -f sedcommand sed.txt 另外可以在一个文件里填写多个条件,然后分别匹配 vim sedcommands/Simple/difficult/1p -r 支持扩展正则表达式的语法,默认是基础正则表达式 演示例子 cat sed.txt The Zen of Python, by Tim Peters Beautiful is better than ugly.than Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. /sbin/bash