sed的替换操作

简介: sed的替换操作

sed(Stream Editor)在Linux和类Unix系统中是一种非常强大的流编辑器,用于对输入流(例如文件或管道输入)进行文本的逐行编辑。其替换操作主要通过s(substitute)命令实现。以下是s命令的基本结构和用法:

sed 's/原字符串/新字符串/选项'
  • s:表示替换(substitute)操作。

  • /原字符串/:这部分是要被替换的模式或者确切的字符串,可以包含正则表达式。

  • /新字符串/:这是替换原字符串后的新内容。

  • 选项

    • g:全局(global)替换,在一行中找到的所有匹配项都会被替换。
    • 如果不加g,则默认只会替换每一行中首次出现的匹配项。

举例说明:

  1. 将每一行中的old_text替换为new_text

    sed 's/old_text/new_text/g' input_file.txt
    
  2. 只替换每一行的第一个old_text

    sed 's/old_text/new_text/' input_file.txt
    
  3. 如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义:

    sed 's/\./,/g' input_file.txt  # 将句点替换为逗号
    
  4. 使用地址范围限定替换操作的行范围:

    sed '5,10s/original/replacement/g' input_file.txt  # 只在第5至第10行之间替换
    
  5. 对于变量引用,如果你需要在命令中动态插入变量值,由于shell中单引号不会展开变量,所以应使用双引号:

    pattern="old_pattern"
    replacement="new_pattern"
    sed "s/$pattern/$replacement/g" input_file.txt
    

以上就是sed进行替换操作的基础用法,实际上sed的功能远不止于此,还可以结合其他命令和选项完成更复杂的文本处理任务。

目录
相关文章
|
人工智能 文字识别 计算机视觉
【AAAI 2024】M2Doc:文档版面分析的可插拔多模态融合方法
M2Doc是一种创新的多模态融合方法,设计用于增强文档版面分析任务中的纯视觉目标检测器。该方法包括Early-Fusion和Late-Fusion模块,前者通过门控机制融合视觉和文本特征,后者则在框级别合并这两种特征。M2Doc易于集成到各种目标检测器,实验证明它能显著提升DocLayNet和M6Doc数据集上的性能,特别是与DINO结合时,在多个数据集上达到SOTA结果。此外,研究表明M2Doc对于增强复杂逻辑版面分析任务中的文本理解和语义关联特别有效。
|
3月前
|
存储 弹性计算 容灾
新手小白如何购买阿里云服务器?2025最新图文流程
本文详细介绍阿里云ECS服务器自定义购买全流程,涵盖付费模式、地域、网络、实例规格、镜像、存储、公网IP、带宽、安全组等配置选择,帮助用户全面了解如何根据需求选购阿里云服务器。
532 2
|
10月前
|
人工智能 数据处理 语音技术
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
Pipecat 是一个开源的 Python 框架,专注于构建语音和多模态对话代理,支持与多种 AI 服务集成,提供实时处理能力,适用于语音助手、企业服务等场景。
711 23
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
489 6
|
监控 Linux 网络安全
Linux服务器如何查询连接服务器的IP
【4月更文挑战第15天】Linux服务器如何查询连接服务器的IP
1448 1
|
Linux
jetbrains-gateway远端开发
jetbrains-gateway远端开发
331 1
|
边缘计算 缓存 网络协议
【计算机网络】—什么是蜂窝移动网络?
【计算机网络】—什么是蜂窝移动网络?
|
存储 设计模式 缓存
缓解缓存击穿的大杀器之---singleflight深入浅出
缓解缓存击穿的大杀器之---singleflight深入浅出
925 0
缓解缓存击穿的大杀器之---singleflight深入浅出
|
人工智能 监控 Oracle
低代码火,阿里宜搭、华为Astro Zero 入选Gartner2022低代码魔力象限
低代码火,阿里宜搭、华为Astro Zero 入选Gartner2022低代码魔力象限
778 0
|
JSON 前端开发 JavaScript