Linux命令之乐--sed
sed是stream edit的缩写,是处理文本非常重要的工具。
常见用法:
1. 替换文本#
1.1 替换文本中的第一处符合的样式
1 2 3 4 5 | sed 's/pattern/replace_string' file 或者 cat file | sed 's/pattern/replace_string' |
1.2 替换全局的符合的样式
1 | sed 's/pattern/replace_string/g' file |
1.3 直接修改原文件
1 | sed -i 's/pattern/replace_string/g' file |
1.4 忽略前面N-1的匹配,从N开始替换
1 2 | $ echo this this this| sed 's/this/THIS/2g' this THIS THIS |
1.5 同时替换多个样式,中间用;隔开
1 2 | $ echo a b c| sed 's/a/d/g;s/b/e/g;s/c/f/g' d e f |
2. 删除匹配项#
1 | sed '/pattern/d' file |
常用于删除空白行
1 | sed '/^$/d' file |
3. 已匹配的字符串标记&#
1 2 | echo hello China| sed 's/China/[&]/g' hello [China] |
#
4. 子串标记,匹配给定样式中的一部分#
1 2 | echo this is dight 7 in a number | sed 's/dight \([0-9]\)/\1/' this is 7 in a number |
工作中的应用:#
给文本中的每一行添加""
1 2 3 | $ sed 's/^/\"&/g;s/$/&\"/g;s/\r//g' file "hello" "linux" |
【推荐】国内首个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%的程序员都答错了