十四、sed命令其他案例
《linux命令行与shell脚本编程大全》看完了,看《linux运维之道》发现里面的案例挺接近工作环境的,记录于此。
s替换指令案例
案例1样本文件
[root@tzPC 19Unit]# cat test.txt <html> <title>First Web</title> <body>Hello the World!<body> </html>
要求将第二个body替换为</body>
[root@tzPC 19Unit]# cat sed.sh /body/{ s//\/body/2 } [root@tzPC 19Unit]# sed -f sed.sh test.txt
案例2样本文件
[root@tzPC 19Unit]# cat test.txt <html> <title>First Web</title> <body> h1Helloh1 h2Helloh2 h3Helloh3 </body> </html>
要求给所有第一个h1,h2添加<>,第二个h1,h2添加</>
[root@tzPC 19Unit]# cat sed.sh /h[0-9]/{ s//\<&\>/1 s//\<\/&\>/2 }
这里遇到的是//中正则表达式为空,匹配最近一次正则表达式的匹配地址也就是前面的h[0-9]
&表示用正则表达式匹配的内容进行替换
d删除指令案例
案例1样本文件
[root@tzPC 19Unit]# cat test.txt DEVICE=ens33 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=192.168.0.1
要求删除文件中的空白行
[root@tzPC 19Unit]# cat sed.sh /.*/{ /^$/d }
.表示匹配任意单个字符,*匹配前一个字符出现零次或多次;
合起来则表示匹配任意多个任意字符。
有多种方式删除,这里写的是书中的一种
y转换指令案例
案例1样本文件
[root@tzPC 19Unit]# cat test.txt
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
netmask=255.255.255.0
GATEWAY=192.168.0.1
要求将netmask转成大写
[root@tzPC 19Unit]#cat sed.sh /.*/{ /netmask/y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ }
q退出指定案例
显示test.txt前两行内容后退出sed指令
[root@tzPC 19Unit]#sed '2q' test.txt
学习来自:《Linux运维之道 第2版》第3章
今天的学习是为了以后的工作更加的轻松!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· Supergateway:MCP服务器的远程调试与集成工具