sed的用法

简介: sed的用法

sed(Stream Editor)是一个强大的流编辑器,主要用于对输入流(如文件或管道输入)进行文本行的模式查找、替换和过滤等操作。下面是一些基本的sed用法示例和说明:

基本语法:

sed [options] commands inputFile
  • options:可选的命令行选项,例如:

    • -i:直接编辑原文件而非输出到标准输出(默认情况下,sed不会修改原文件)。
    • -e:允许在命令行后面直接给出一个或多个编辑命令。
    • -f scriptfile:从指定文件中读取编辑命令。
    • -n:静默模式,仅打印经过命令修改的行。
  • commands:编辑命令,可以是单个命令,也可以是一系列命令,每个命令通常由地址范围(可选)和一个操作组成。

常见操作命令:

替换操作:

# 将每一行出现的old_text替换为new_text
sed 's/old_text/new_text/g' inputFile

# 只替换每行的第一个old_text
sed 's/old_text/new_text/' inputFile

# 使用正则表达式进行替换
sed 's/\([0-9]\+\) year/\1 years/g' inputFile

删除操作:

# 删除第n行
sed 'nd' inputFile

# 删除匹配pattern的所有行
sed '/pattern/d' inputFile

# 删除空白行
sed '/^$/d' inputFile

插入操作:

# 在第n行后插入文本
sed 'n a\Text to insert after line n' inputFile

# 在文件开头插入文本
sed '1i\Text to insert at beginning of file' inputFile

复制与打印操作:

# 打印匹配pattern的行
sed '/pattern/p' inputFile

# 不打印所有行,仅打印匹配pattern的行(类似于grep)
sed -n '/pattern/p' inputFile

# 把匹配pattern的行复制并追加到文件末尾
sed '/pattern/{p;G}' inputFile

示例:

  • 删除文件中的特定行:

    sed '/unwanted_line/d' inputFile
    
  • 替换单词:

    sed 's/apple/orange/g' inputFile # 将apple替换成orange
    
  • 使用地址范围:

    sed '5,10s/foo/bar/g' inputFile # 在第5行到第10行之间将foo替换成bar
    
  • 修改文件并保存:

    sed -i 's/original/replacement/g' inputFile # 直接在原文件上替换内容
    

以上仅为sed命令的部分基础功能,其强大之处在于可以组合使用各种复杂的命令和正则表达式来处理文本。

目录
相关文章
|
XML 存储 JSON
16道超详细JavaWeb面试题整理
本节小编整理了16道JavaWeb常考的面试题,面试前看一看,或许可以让您在学习 JavaWeb上少走许多弯路,也希望助您拿下心仪offer!
16道超详细JavaWeb面试题整理
|
SQL 存储 消息中间件
汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践
由汽车之家实时计算平台负责人邸星星在 4 月 17 日上海站 Meetup 分享的,基于 Flink + Iceberg 的湖仓一体架构实践。
汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践
|
网络协议 应用服务中间件 程序员
Docker实战:Docker安装Gitlab教程,非常实用
GitLab 是一个用于代码仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务平台, 通过该平台可以实现Github类似的web系统,可以实现浏览代码、管理项目、管理团队人员、管理代码分支、代码提交记录等功能。Gitlab是目前互联网公司最流行的代码版本控制平台。
Docker实战:Docker安装Gitlab教程,非常实用
|
6月前
|
人工智能 编解码
导演失业预警!Seaweed-7B:字节7B参数模型让剧本自动变电影!20秒长镜头丝滑生成
Seaweed-7B是字节跳动推出的70亿参数视频生成模型,支持从文本、图像或音频生成高质量视频内容,具备长镜头生成、实时渲染等先进特性,通过优化架构显著降低计算成本。
273 10
导演失业预警!Seaweed-7B:字节7B参数模型让剧本自动变电影!20秒长镜头丝滑生成
|
11月前
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
305 1
|
10月前
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
192 6
|
11月前
|
算法 前端开发 Linux
深入理解Linux内核调度器:CFS与实时性的平衡####
本文旨在探讨Linux操作系统的核心组件之一——完全公平调度器(CFS)的工作原理,分析其在多任务处理环境中如何实现进程间的公平调度,并进一步讨论Linux对于实时性需求的支持策略。不同于传统摘要仅概述内容要点,本部分将简要预览CFS的设计哲学、核心算法以及它是如何通过红黑树数据结构来维护进程执行顺序,同时触及Linux内核为满足不同应用场景下的实时性要求而做出的权衡与优化。 ####
|
人工智能 API Docker
智能文档检索和简便集成的开源 AI 问答工具:Danswer
当你使用 Danswer 时,只需以自然的方式提出问题,就像与朋友交谈一样简单,它会自动搜索公司内部的文件和资料,然后给你一个可靠的答案,并附上来源。
|
数据安全/隐私保护
炫酷的生日快乐网页 【附带源码】
炫酷的生日快乐网页 【附带源码】
383 4
|
Shell C++
【C++ 实用函数 】C++ 14 std::exchange 使用说明
【C++ 实用函数 】C++ 14 std::exchange 使用说明
393 1