文本三剑客之sed

目录

1、简介

2、sed命令的操作符 

3、行号范围区间打印

4、删

5、替换

6、分组以及字符串位置替换

7、实操题


1、简介

是一种流编辑器;对文本的内容进行增删改查

2、sed命令的操作符 

s替换指定字符       
d删除选定的行
a在当前行下面增加一行指定内容
i在当前行上面增加一行指定任务
c整行替换
y字符转换,转换前后的字符长度必须一致
p打印
=打印行号
r使用扩展正则
-n过滤sed的默认输出

3、行号范围区间打印

打印1到3行        cat b.txt | sed -n '1,3p'

打印1和3行        cat b.txt | sed -n '1p;3p'

 打印行号        cat b.txt | sed -n '='

从第二行开始向下打印2行        cat b.txt | sed -n '2,+2p'

 打印奇偶行       

4、删

-d

只删除内容保留文件        sed -i 'd' b.txt

指定行删除         

cat -n te.txt | sed -n '3d;p'

 cat -n te.txt | sed -n '1,5d;p'

匹配字符串删除        cat -n te.txt | sed '/one/d'

5、替换

s:替换字符串        cat /etc/passwd | sed -n 's/root/test/p'

c:整行替换        cat te.txt | sed '/one/c nine'

 在当前行的下一行添加内容:a        cat te.txt | sed '/three/a 123'

 在当前行的上一行添加内容:i        cat te.txt | sed '/three/i 123'

在行后添加内容:r        r后跟文件获取内容

cat te.txt | sed '/three/r b.txt'

6、分组以及字符串位置替换

echo abcdefg | sed -r 's/(.)(.)(.)(.)(.)(.)(.)/\7\6\5\4\3\2\1/'

7、实操题

①怎么解决sed命令处理容量过大,或者内容过多而导致执行效率慢的问题

使用split命令进行文件分割

②如何只删除文件内容保留文件

cat /dev/null > 123.txt

sed -i 'd' 123.txt

③如何删除空行

grep -v "^$" 123.txt

cat 123.txt | tr -s "\n"

sed '/^$/d' 123.txt

④把IPV4地址换成10.10.10.10

cat /etc/sysconfig/network-scripts/ifcfg-ens33 | sed '/IPADDR/c IPADDR=10.10.10.10'

⑤查看指定时间内的日志文件

sed -n '/Jun 13 18:10:01/,/Jun 13 18:50:01 /p' /var/log/messages

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值