shell 编程四剑客之SED

前端之家收集整理的这篇文章主要介绍了shell 编程四剑客之SED前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

(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实战删除文本

<1> jfedu.txt文件中,删除第一行到第3行

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

原文链接:https://www.f2er.com/bash/389156.html

猜你在找的Bash相关文章