(1) SED 作用
sed 是一个非交互式的文本编辑器, 对比Vi(vim) 是一个交互式的编辑器
(2) SED 语法
sed [-option] [command] files
注释:
sed 工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改, 需要加i 参数彻底修改
(3) SED实战
SED 实战替换文本
<1> jfedu.txt文件中,将文件中所有的old,替换为new
sed 's/old/new/g' jfedu.txt
<2> jfedu.txt文件中,将http://www.jd.com替换为http://www.baidu.com
sed 's#http://www.jd.com#http://www.baidu.com#g' jfedu.txt
SED 实战打印文本
<1> jfedu.txt文件中,打印第一行
sed -n '1p' jfedu.txt
<2> jfedu.txt文件中,打印1到3行
sed -n '1,3p' jfedu.txt
<3> jfedu.txt文件中,打印最后一行
sed -n '$p' jfedu.txt
<4> jfedu.txt文件中,打印第一行与最后一行
sed -n '1p;$p' jfedu.txt
<5> jfedu.txt 文件中,打印第一行到最后一行
sed -n '1,$p' jfedu.txt
<6> jfedu.txt文件中,打印/linux/这一行
sed -n '/linux/p' jfedu.txt
<7> jfedu.txt文件中,打印第一行与最后一行(用-e这个扩展参数实现)
sed -n '1p' -e '$p' jfedu.txt
<8> jfedu.txt文件中,匹配/linux/这一行和/test/这一行,打印出来
sed -n '/linux/,/test/p' jfedu.txt
<9> jfedu.txt文件中,匹配/linux/这一行到最后一行,打印出来
sed -n '/linux/,$p' jfedu.txt
SED实战删除文本
sed '1,3d' jfedu.txt
<2> jfedu.txt文件中,删除linux匹配行到最后一行
sed '/linux/,$d' jfedu.txt
SED实战插入文本
<1> jfedu.txt文件中,查找/linux/这一行,并在下一行添加word字符
sed '/linux/aword' jfedu.txt
<2> jfedu.txt文件中,查找/linux/这一行,并在上一行添加word字符
sed '/linux/iword' jfedu.txt
<3> jfedu.txt文件中,查找/linux/这一行,在上一行添加word字符,在下一行添加word字符
sed -e '/linux/aword' -e '/linux/iword/' jfedu.txt
<4> jfedu.txt文件中,查找以test结尾的行,并在其行尾添加word字符
sed 's/test$/&word/g' jfedu.txt
<5> jfedu.txt文件中, 查找/www/所在行,在其行行首添加word字符
sed 'www/s/^/&word/g' jfedu.txt
<6> jfedu.txt文件中,查找以com结尾的行,在行尾添加. 查找/mpt/所在行,在其行首添加.
sed -e 's/com$/&./g' -e '/mpt/s/^/&./g' jfedu.txt
<7> 用sed打印根
sed -n 's/\//p'
<8> sed 读取变量,并进行替换
website=www.jfedu.net
sed ''s/www.jd.com/$website/g'' jfedu.net