Linux文本三剑客-sed
Linux_commands #正则表达式
详解
sed是stream editor的缩写,简称流编辑器
sed是操作、过滤和转换文本内容的强大工具
常用功能包括结合正则表达式对文件实现快速增删改查,其中查询的功能中最强大的两个功能是过滤(过滤指定的字符串)、取行(取出指定行)
sed工作流程
- 文件test.txt
- 逐行读取文本文件
- sed模式空间(pattern space)
- 读取每一行数据放入自己的工作车间(文本数据读入内存)
- 模式匹配
- 匹配成功
- 编辑(输出到屏幕)
- 匹配失败
- 默认输出到屏幕(可取消)
- 匹配成功
语法
sed [选项] [sed内置命令字符] [输入文件]
选项
参数选项 | 解释 |
---|---|
-n | 取消默认sed的输出,常与sed指令p一起使用 |
-i | 直接将修改结果写入文件,不用-i,sed修改的是内存数据 |
-e | 多次编辑,不需要管道符 |
-r | 支持正则扩展 |
sed的内置命令字符
用于对文件进行不同的操作功能
sed常用内置命令字符
:
sed的你指命令字符 | 解释 |
---|---|
a | append,对文本追加,在指定行后面添加一行/多行文本 |
d | delete,删除匹配行 |
i | insert,插入文本,在指定行前太哪家一行/多行文本 |
p | print,打印匹配行的内容,通常p与-n |
s/正则/替换内容/g | 匹配正则内容,然后替换内容(支持正则),结尾g表示全局匹配 |
sed匹配范围:
范围 | 解释 |
---|---|
空地址 | 全文处理 |
单地址 | 指定文件某一行 |
/pattern/ | 被模式匹配到的每一行 |
范围区间 | 10,20 十到二十行,10,+5 第十行向下五行,/pattern1/,/pattern2/ |
步长 | 12,表示从1开始,间隔为2的行;22,表示从2开始,间隔为2的行 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了