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"

  

  

posted @   头痛不头痛  阅读(378)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩