sed的用法

        sed是一种流编辑器,它是一种文本处理中非常重要的工具,能够配合正则表达式使用。处理时,把当前的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成之后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,知道文件末尾,文件内容你没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;减缓对文件的反复操作;编写转换程序等。

sed用法实例


替换操作:s命令:将文件中每一行的第一个字串qiang替换为yuan,但没有将替换的内容写到文件中去。缓冲区的文本已经替换。

 

-i : 代表将当前替换的字串写入到文本中

 

 

g : 表示文件中每一行的所有匹配字串替换 

当需要从第N处匹配开始替换是,可以使用/Ng: ( N:代表从第几个匹配字串开始替换)

 

d:删除空白行

删除文件的第2行:

删除文件的第3行到末尾的所有行:

 

删除文件的最后一行:

 

 删除文件中所有开头是test的行:

 

所有以test开头的行都会被替换为它自己加1234:

 

子串匹配标记 \1 :

命令中digit 7,被替换成了7.样式匹配到的子串是7,\(..\)用于匹配子串,对于匹配到的第1个子串就标记为\1,以此内推

 批量的递归的替换字串,如下例:

将所有文件中含“yuan”的字串改为"qiang"

格式为:sed -i "s/OldString/NewString/g"  `grep "string"  . -n -rl`

 删除文件中的空格

 

1
sed -i 's/\ //g' filename

 

删除文件中的换行符

1
2
3
cat filename|tr -d ['\n'] > .tmp
cp .tmp filename
rm  .tmp

  

  

 

posted @   轻轻的吻  阅读(360)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示