shell脚本三剑客之sed(一)


在这里插入图片描述

一、sed基本选项与命令

sed的基本功能是用来查找和替换文本。

sed  循环 一行一行的处理文件     行处理
sed -n '/abc/p' file 默认会打印模式空间的内容
行中匹配abc的打印出来  -r  支持扩展分割符
-n不让他默认打印模式空间 
 sed root@10.0.2.253 sed 's/abc/def' file  远程登录后修改file里的内容
sed -n '5p' file 把第五行打印出来
sed -n '$p' file  把最后一行打印出来
sed -n '1,3p' file  把一到三行打印出来
sed -n '1,~3p' file  从第一行开始打印三行
sed  -i '3i aaaaaaa' file  在第三行的前面加上aaaaaaa
sed -i '$a  aaaaa' file  在最后行加入aaaaa
sed  -i '/^tom/i  aaaaaa' file  在以tom开头的行前一行加上aaaaaa
sed  -i  's/abc/def/' file 改每一行的第一个abc成def
sed  -i  's/abc/def/g' file 改每一行的所有abc成def
sed  -i  's/abc/def/3' file 改每一行的第三个abc成def
sed  -i  '1,2s/abc/def/' file 改一到两行abc成def
s 换匹配的字段 c换匹配的行
sed  -i  '1,2s/^.*$/def/' file 改一到两行成def
sed  -i   '4c aaaaaaaaa' file  把第四行改为aaaaaaaa
sed -i  '/^SELINUX/c  selinux ' 把所有以SELINUX开头的行改为selinux
sed -i  '4d' 把第四行删除
sed -i  '/^tom/d' file 删除以tom开头的所有行
sed -i  '/^$/d' file  删除空行
sed -i  '/^\s$/d' file  删除开头为空行\s表示空格或tab
sed  -i '/^abc/s/tom/jerry/'  file  先找到以abc开头的行将这一行的tom改为jerry
sed -i '/^mike/s/^/#' file 将mike行注释
sed  -n  '1p; 3p'  file  打印第一行和第三行
sed -i -e '1s/jerry/tom/;   -e 3s/mike/xyz/'  file  多条一起执行用-e
sed -i '/abc/,/^def/s/123/456/' file  将abc开头的行和def开头的行之间的行的123改为456
sed  -n '1,/def/p' file 从第一行开始直到碰到def的行全部打印出来

二、sed的练习与使用

1.sed取出/etc/passwd文件的第一列

sed -n 's/:/\n/p' passwd | sed -n '1~2p'

2.sed将PATH环境变量中的冒号换成换行 ->可以将PATH变量的内容重定向到一个文件里,例如path.txt

sed -n 's#:#\n#gp' path.txt

3.sed将PATH环境变量斜杠/换成斜杠\

sed -i 's/\//\\/g' path.txt

4.sed修改SELINUX配置文件从开启(enforcing)变成禁用(disabled)/etc/sysconfig/selinux

sed -i '/^SELINUX=/ s/enforcing/disabled/' config

5.去掉/etc/passwd文件中第二个字段的x

sed -i '/:x:/ s/x//' passwd

6.将/etc/sysconfig/network-scripts/ifcfg-ens33里的ONBOOT=no修改为yes或者修改下IPADDR后面的ip地址,具体ip自己定义

sed -i '/ONBOOT=no/ s/no/yes/' ifcfg-ens33 

7.只显示ip add的ip地址

ip add |sed -nr "/[0-9]{1,3}(\.[0-9]{1,3}){3}/p" |sed "s/inet //" |sed "s/\/.*//"

8.复制/etc/ssh/sshd_config到当前目录下,修改里面的端口号修改为8899(将#Port 22 配置修改为Port 8899 要求去掉前面的#号,将22修改为8899)

sed -i "s/#Port 22/Port 8899/g" sshd_config 

9.给下列含有大写字母的行,在大写字母后追加数字2020 --》sed

abcdSdddde
islHishbxld
goBkefji
daanshXxge

sed -rn 's/[A-Z]/&2020/gp' alpha.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值