栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux之sed文件操作应用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 内容’ 文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号