Linux之sed文件操作应用

目的:

在设计中有时不用数据库管理参数,此时会用文本来管理,一般会采用“参数名关键字=+参数值”来操作。
在linux下可以偷懒,直接使用sed来操作。此功能已在arm板和ubuntu下测试通过。 

第一项:删除以"关键字"为首的行

aaa.txt文本内容如下
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
wg=192.168.9.1
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end

操作:sed -i ‘/wg=/d’ /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
由此知sed -i ‘/wg=/d’ /home/alientek/aaa.txt的操作是将删除事有wg的行。
实验二:
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
wg=192.168.9.1
wg=192.168.9.2
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
操作:sed -i ‘/wg=/d’ /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
由实验一和二可知,其删除了有“wg=”所有行,
实验三:
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
aawg=192.168.9.1
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
操作:sed -i ‘/wg=/d’ /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
实验一、二和三总结:sed -i ‘/wg=/d’ /home/alientek/aaa.txt
整个文件中,包含wg=的行执行动作/d,表示删除
应用:删除所有含有"关键字的"行
sed -i ‘/关键字/d’ /home/alientek/aaa.txt
缺点:它将删除所有出现关键字的行。改进以关键字为首的行
实验四、
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
aawg=192.168.9.1
wg=aaaa
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
操作:sed -i ‘/^wg=/d’ /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
aawg=192.168.9.1
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
总结:要想整个文件中,以“关键字”为首的行执行动作删除
则指令是:sed -i ‘/^关键字/d’ 文件
如sed -i ‘/^wg=/d’ /home/alientek/aaa.txt

第二项:向文件第i行后面添加一行数据

#!/bin/sh //第一行
p=192.168.9.56
mask=255.255.255.0
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end

操作:sed -i “4i aaaaaa” /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
aaaaaa
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
再操作:sed -i ‘4i aaaaaa’ /home/alientek/aaa.txt
#!/bin/sh
p=192.168.9.56
mask=255.255.255.0
aaaaaa
aaaaaa
dns1=202.96.104.17
dns2=114.114.114.114
ssid=TP-LINK_111F
password=87562223
end
总结:向文件第n行输入一行数据操作
sed -i ‘4i 内容’ 文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值