-shell脚本编程-sed-

-shell脚本编程-sed-

指令:
P:  输出
d:  删除
1.删除文件最后一行
#sed '/$/d' test.txt
2.删除文件的空行:
#sed '/^$/d' test.txt
s =  替换
语法结构:
1. sed 's/old/new/' test.txt
    //替换第一个匹配到的old
 
2. sed 's/old/new/g' test.txt
   //替换所有匹配到的old

3. sed 's/old/new/2' test.txt
   //替换每行匹配到的第2个

替换实现删除的效果:
1. sed 's/old/2' test.txt
   //删除匹配到每行的第二个

2.sed -n 's/old/new/p' test.txt
   //打印替换之后的结果

案例演示: s指令
1.将test. txt 中每行第三个xml替换为XML
# sed ’ s/ xml/XM1/3 ’ test. txt

2.将test . txt 中每行的xm1删除

sed ’ s/xm1//g’ test. txt

3.将每行的/bin/bash替换为/bin

sed ‘s#/ bin/ bash#/bin/ sh# ’

//s替换中的条件/是一个分隔符,分隔符可以替换为#、$、%等,
为了便于文件修改

4.将第4~7行加上注释 (每行开头加上#号)

sed ‘4, 7s/^/#/’ test . txt

5.将以#an开头的注释去掉 (去掉每行开头的#号)

sed 's/ ^#an/ an/ ’ test. txt

6.删除文件中每行的第二个字符,最后一个字符(两次操作,需要分号;隔开)
#sed ‘s/.//2;s/.$//’ test.txt

7.将文件中每行的第一个和最后一个字符进行互换:
#sed ‘s/^(.)(.*)(.)$/\3\2\1/’ test.txt

   //-r选项是用来支持扩展正则的

echo “hello world”| sed ‘s/ (hello) | (world)/A/g’

echo “hello world”| sed -r ‘s/ (hello)| (world) /A/g’

8.删除文件中所有数字:
#sed ‘s/[0-9]//’ test. txt

9.删除行首的空格:

sed -r ‘s/^( )+//’ test .txt

10.为文件中每个大写字母添加括号:
#sed -r ‘s/[A-Z]/’[\1]/g’

实例:
   编写一个ftp.sh脚本,用来配置匿名FTP服务:
   脚本实现功能:
   1.通过yum安装vsftpd软件包
   2。修改vsftpd服务配置,开启匿名上传
   3.调整/var/ftp/pub/目录权限,允许ftp写入
   4.启动vsftpd服务,设置为开机自启
发布了138 篇原创文章 · 获赞 149 · 访问量 8444

猜你喜欢

转载自blog.csdn.net/weixin_44799645/article/details/104915060