Linux学习2----sed

sed命令

  • 功能:对文件数据流编辑

语法

sed [选项] [sed内置命令字符] [输入文件]

选项

参数选项 解释
-n 取消默认sed的输出,常与内置命令p一起使用
-i 直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e 多次编辑,不需要管道符了
-r 支持正则扩展

sed内置命令符

用于对文件进行不同的操作功能,如对文件增删改查

sed内置命令符 解释
a append,对文本追加,在指定行后面添加一行/多行文本
d delete,删除匹配行
i insert,表示插入文本,在指定行前添加一行/多行文本
p print,打印匹配行的内容,通常与-n一起使用
s/正则/替换内容/g 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配

sed匹配范围

范围 解释
空地址 全文处理
单地址 指定文件某一行
/pattern/ 被模式匹配到的每一行
范围区间 10,20 十到二十行,10,+5 第10行向下5行, /pattern1/,/pattern2/
步长 12,表示1、3、5、7、9行,22 表示2、4、6、8、10

sed案例

sed "2,3p"  pwd.txt -n  #打印第2、3行
sed -n "/linux/p" pwd.txt #打印含linux的行
sed "/game/d" pwd.txt -n #删除含有game的行
sed "/game/d" pwd.txt -n -i #删除含有game的行(删除文件里的内容)
sed "5,$d" pwd.txt #删除第5行以后的
sed "s/匹配的内容/替换的内容/g" pwd.txt -i #替换
sed -e "s/匹配的内容1/替换的内容1/g" -e "s/匹配的内容2/替换的内容2/g" pwd.txt #多次替换  -e多次执行
sed "3a i like girl. \n i like pretty girl" pwd.txt #添加多行
sed "a ------" pwd.txt  #在每一行后面追加
ifconfig ens33 | sed "2p" -n | sed "s/^.*inet//" |sed "s/net.*$//"  #找到纯数字ip
ifconfig ens33 | sed -e "2s/^.*inet//" -e "2s/net.*$//p" -n   #找到纯数字ip
posted @   shog808  阅读(13)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示