Shell脚本文本三剑客之sed

一、文本三剑客之sed

1、基本用法

sed [选项]... '{自身脚本语法};....' [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 替换

操作

打印

打印两次

-n是指定行

打印2到3行的方法

  • + 指从2开始打印后三行

打印到三行然后退出

提取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查询是可以直接调用变量,注意必须用“ ”号或者俩个双引号,单引号不识别变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值