Linux 文本三剑客之 sed
Linux 系统中一切皆文件。
文件是个文本。可以读、可以写,如果是二进制文件,还能执行。
在使用Linux的时候,大都是要和各式各样文件打交道。熟悉文本的读取、编辑、筛选就是linux系统管理员的必备技能
文本处理工具:grep、awk、sed,本篇主要讲 sed
sed 行编辑命令。用来将数据进行选取、替换、删除、新増的命令。默认情况是不会修改文件内容,使用【-i】选项才会修改。
一般格式:sed [选项] [动作] 文件
选项:
-n:不输出内容到屏幕,不自动打印
-e: 多点编辑
-f 脚本名:从指定文件中读取编辑脚本。和 awk 命令的 -f 选项非常类似
-r:支持正则表达式
-i:直接修改读取数据的文件
-i.bak:先备份再修改
动作(使用单引号包含、数字代表行号、逗号代表范围、""$""是最后一行):
注意:正则表达式使用变量的话建议使用三个单引号 '''$name''',不推荐""$name"""
‘地址’:第几行
‘/正则表达式/’:在单引号中//写入正则表达式
a:最后一行插入
c:行替换
i:倒数第二行插入
d:删除行
p:打印行。输出指定的行时,需要把"-n"选项和"p"动作一起使用
s:字符串替换,用一个字符串替换另一个字符串。
格式:sed's/旧字符串/新字符串/g' 文件名(加g对整行有效,不加g只识别第一个)
常用:
删除#号,解除屏蔽,把#BB开头和61结尾范围内的行删除# sed '/^#BB/,/61$/s/#//g' student.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了