shell sed命令

本文深入解析sed命令的功能和使用方法,包括-n、-e、-i等选项的用法,以及a、c、d、i、p、s等动作的详细说明,并通过实例演示如何使用sed命令提取IP地址和修改文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sed [-nefr]   [动作]

-n  只有经过sed处理的那一行才会被列出来

-e 直接在命令行模式进行sed的动作编辑

-i 直接修改读取文件内容,而不是由屏幕输出

动作

[n1[,n2]]function

a :新增的字符串出现在下一行

c :替换

d :删除

i :插入的字符串会出现上一行

p :打印,一般与-n一起用

s  :替换 , 可以直接进行替换工作,通过s可以搭配正则表达式。 如1,220s/old/new/g.


实例:取出IP地址

$ ifconfig
eth0      Link encap:以太网  硬件地址 00:26:9e:ac:88:60  
          inet 地址:192.168.1.44  广播:255.255.255.255  掩码:255.255.255.0
          inet6 地址: fe80::226:9eff:feac:8860/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:114449 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:37824 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:34102568 (34.1 MB)  发送字节:7223843 (7.2 MB)
          中断:31 基本地址:0xe000 

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  跃点数:1
          接收数据包:2018784 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:2018784 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:1432347379 (1.4 GB)  发送字节:1432347379 (1.4 GB)

$ ifconfig | grep 'inet 地址:192' | sed 's/^.*地址://g' | sed 's/ 广播.*$//g'
192.168.1.44 

把文件以;结尾的改成以!结尾。

cat test.c | grep ';' | sed 's/\;$/\!/g'

在文件最后一行加入字符串:

cat test.c | sed '$a # hello'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值