Linux sed 命令
动作:
p 打印输出
d 删除操作
a 在指定的行后面添加一行内容
i 在指定的行前面添加一行内容
1、查看操作
1 2 3 | sed -n '5p' file // 只查看文件的第5行 sed -n '3,5p' file // 查看文件的第3到第5行 sed -n '5,$ p' file // 打印第5到最后一行 |
2、删除操作
1 2 3 | sed '3 d' 1.txt // 删除文件的第3行 ,然后将内容进行输出,不是直接操作的文件。 sed '3,5 d' 1.txt // 删除第三行到五行。 sed '3,$ d' 1.txt // 删除第三行到最后一行。 |
3、添加操作
1 2 3 | sed '2a word' file // 在第二行后面添加一行,内容为word sed '3i word' file // 在第三行前面添加一行,内容为word |
3、查找操作
1 2 3 | sed -n '/root/p' file // 只输出root关键字的行 sed '/root/d' file // 将含有root的行删除,然后输出,加上-i可以操作原文件 |
4、替换操作
1 2 3 | sed 's/root/new/' file // 将文件中的root替换成new,每行只替换一次 sed 's/root/new/g' file // 将每行的所有root全部替换成new g替换多次 sed '3,4s/root/new/g' 1.txt // 只替换第3到第4行的root为new |
sed 综合运用
*****************************************************
文档内容如下:
19-罗锦辉:http://www.cnblogs.com/jw1519
20-甘露秋:http://www.cnblogs.com/bazhahei
21-张靖:http://www.cnblogs.com/zj21
22-黄庭辉:http://www.cnblogs.com/1796440575hth
23-刘波:http://www.cnblogs.com/oppppo
24-杨俊杰:http://www.cnblogs.com/duolaameng
25-侯宝:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 1、只输出学生姓名 cat jw | sed 's/[0-9 a-Z ://.\-]/ /g' 2、只输出每个学生的url cat jw | sed 's/.*:\/.//g' | sed '/.*:/d' 3、只输出个人博客里的学号 cat jw | sed 's/-.*/ /g' 4、只输出个人博客中,两个字姓名的学生名 cat jw | sed 's/[0-9 a-Z ://.\-]//g' | grep - v '...' 5、只输出每个人博客地址的最后一段,即.com/后面的一段内容 cat jw | sed 's/.*\// /g' | sed 's/.*://g' 6、只输出最后一段全部是字母的 cat jw | sed 's/.*\// /g' | sed 's/.*[0-9].*/ /' | 7、只输出最后一段含有大写字母的 cat jw | sed 's/.*\// /g' | sed -n '/[A-Z]/p' |
将/etc/passwd的最后一行全部改成/bin/bash
1 | cat /etc/passwd | sed 's/\(.*:\)\(.*\)/\1\/bin\/bash/' // (.*:) 第一部分 (.*)第二部分 1表示第一部分 |
2.将/etc/passwd每行前面的用户名,添加到最后一段
如:root:x:0:0:root:/root:/bin/bash
处理后应该为
root:x:0:0:root:/root:/bin/bash:root
1 | cat passwd | sed 's/\(^[a-Z]*\)\(.*\)/&:\1/' // &表示全部 |
3.一文本内容如下:
192.168.100.2
172.16.5.4
10.101.2.5
133.37.25.21
通过命令将其处理成如下效果(转换到一行,通过逗号隔开,每行内容用单引号引起来)
'192.168.100.2','172.16.5.4','10.101.2.5','133.37.25.21'
1 | cat 1.txt | sed "s/^\|$/'/g" | tr '\n ' ' , '|sed ' s/,$/\n /g ' // 先将每行文本的前后加上单引号,再将换行符转换为逗号,在将最后一个逗号转换为换行符。 ^ 开始 $结尾 | 或者 |
标签:
shell
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战