shell脚本文本三剑客之sed

目录

sed基本用法

sed脚本命令

实操

 搜索替代

变量


sed标准输出在屏幕  是行编辑器

sed基本用法

sed [option]...  'script;script;...' [input file....]
     选项             自身脚本语法      支持标准输入管道

脚本语法:地址+sed特有的命令组成

常用选项:
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑[root@www data]#sed -n -e '/^r/p'  -e'/^b/p’ /etc/passwd
-f FILE 从指定文件中读取编辑脚本
-r,-E 使用扩展正则表达式
-i.bak 备份文件并原处编辑

sed脚本命令

p 打印
q 提前退出
n 取消打印
c 替换

实操

seq 10 > a  传1-10到a文件

打印

只给第二行打印

打印第三行

打印1到3行

 打印2到往后加4行

打印到第三行提前退出

提取ip地址
ifconfig ens33|sed -n '2p'
除了第二行打印出来
ifconfig ens33 |sed -n '2!p'
提取df的dev行
df| sed -n  '/\/dev\/sd/p'
提取倒数第二行
sed -n "$(echo $[`cat /data/a|wc -l` -1])p"  a
第一个正则表达式和第二个正则表达式之间的行
模板:sed -n '/part1/,/part2/'
sed -n '/^r/,/^f/p'  /etc/passwd
找到5个r开头
sed -n '/^r/ , 5p'  /etc/passwd
取奇数行
seq 10| sed -n '1~2p'
取偶数行
seq 10| sed -n '0~2p'或者seq 10| sed -n '1~2!p'
隔一行打印一个
seq 10 |sed -n 'p;n'
把第5行放到最后一行
seq 10 |sed '5{H;d};$G'
忽略大小写找以k开头的
sed -n '/^k/Ip'  /etc/issue
把#号开头的行删掉
sed '/^#/d' fstab
把非#号开头的行删掉
sed '/^#/!d' fstab
在第二行后面加上haha
seq 10 |sed '2ahaha'
备份再第二行后面加上haha
sed -i.bak '2ahaha' a
在第二行后面加上cxk再往下面一行加上nylf
sed -i.bak '2acxk\nlyf' a
将第二行替换成cxk
seq 10|sed '2ccxk' a
把2导入指定a
seq 10| sed -n '2wa'

 搜索替代

s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###
替换修饰符:
g 行内全局替换
p 显示替换成功的行
w   /PATH/FILE 将替换成功的行保存至文件中
I,i   忽略大小写

注意:查找内容可使用正则表达式,替换内容不可使用正则表达式

变量

使用sed查询是可以直接调用变量,注意必须用“ ”号或者俩个双引号,单引号不识别变量

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值