Sed命令及示例

UNIX 下SED使用全解手册 Sed(Stream EDitor)为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑资料。使用者可 利用 sed 所提供 20 多种不同的函数参数 , 组合(解 [1])它们完成不同的编辑动作。此外 , 由於 sed 都 以行为单位编辑文件 , 故其亦是行编辑器(line editor)。 一般 sed 最常用在编辑那些需要不断重覆某些编辑动作的文件上 , 例如将文件中的某个字串替换成另一个字 串等等。这些相较於一般 UNIX 编辑器(交谈式的, 如 vi、emacs)用手动的方式修改文件 , sed 用起来较省力。 立即下载

在这里插入图片描述

Unix/Linux中的SED(流编辑器)命令是一个强大的工具,用于处理和操作文件中的文本。它无需打开文件编辑器即可执行多种操作,如搜索、查找替换、插入、删除等。这使得它成为管理和编辑文本的高效工具,特别是在处理大文件或在脚本中自动化任务时。

• SED是一个强大的文本流编辑器。可以执行插入、删除、搜索和替换(substitution)操作。

• Unix中的SED命令支持正则表达式,这使其能够执行复杂的模式匹配。

语法:

sed [OPTIONS] 'SCRIPT' [INPUTFILE...]

其中,

• ‘OPTIONS’:这些是可选标志,用于修改sed命令的行为。

• ‘SCRIPT’:定义要在输入文件上执行的命令或命令序列。

• ‘INPUTFILE’:一个或多个要处理的输入文件。

SED中常用选项

选项描述
-i在不打印到控制台的情况下原地编辑文件(覆盖文件)。
-n抑制自动打印行。
-e允许执行多个命令。
-f从文件而不是命令行读取sed命令。
-r启用扩展正则表达式。

SED命令用法的实际示例

考虑以下文本文件作为输入。

$cat > geekfile.txt
unix is great os. unix is opensource. unix is free os.
learn operating system.
unix linux which one you choose.
unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

1.示例命令

替换或替换字符串:SED命令主要用于替换文件中的文本。以下简单的sed命令将文件中的单词“unix”替换为“linux”。

$sed 's/unix/linux/' geekfile.txt

输出:

linux is great os. unix is opensource. unix is free os.
learn operating system.
linux linux which one you choose.
linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

这里的“s”指定替换操作。“/”是分隔符。“unix”是搜索模式,“linux”是替换字符串。默认情况下,sed命令仅替换每行中模式的第一个出现,而不会替换该行中的第二个、第三个……出现。

2.替换行中模式的第n个出现

使用‘/1’、‘/2’等标志来替换行中模式的第一个、第二个出现。以下命令将行中单词“unix”的第二个出现替换为“linux”。

$sed 's/unix/linux/2' geekfile.txt

输出:

unix is great os. linux is opensource. unix is free os.
learn operating system.
unix linux which one you choose.
unix is easy to learn.linux is a multiuser os.Learn unix .unix is a powerful.

3.替换行中模式的所有出现

替换标志/g(全局替换)指定sed命令替换行中字符串的所有出现。

$sed 's/unix/linux/g' geekfile.txt

输出:

linux is great os. linux is opensource. linux is free os.
learn operating system.
linux linux which one you choose.
linux is easy to learn.linux is a multiuser os.Learn linux .linux is a powerful.

4.从行中模式的第n个出现替换到所有出现

使用/1、/2等和/g的组合来替换行中从第n个出现开始的所有模式。以下sed命令将行中第三个、第四个、第五个……“unix”单词替换为“linux”单词。

$sed 's/unix/linux/3g' geekfile.txt

输出:

unix is great os. unix is opensource. linux is free os.
learn operating system.
unix linux which one you choose.
unix is easy to learn.unix is a multiuser os.Learn linux .linux is a powerful.

5.用括号括起每个单词的第一个字符

这个sed示例打印每个单词的第一个字符用括号括起来。

$ echo "Welcome To The Geek Stuff" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

输出:

(W)elcome (T)o (T)he (G)eek (S)tuff

6.在特定行号上替换字符串

您可以限制sed命令仅在特定行号上替换字符串。一个示例是

$sed '3 s/unix/linux/' geekfile.txt

输出:

unix is great os. unix is opensource. unix is free os.
learn operating system.
linux linux which one you choose.
unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

上述sed命令仅替换第三行上的字符串。

7.使用/p标志重复替换的行

/p打印标志在终端上两次打印替换的行。如果一行没有搜索模式且未被替换,则/p仅打印该行一次。

$sed 's/unix/linux/p' geekfile.txt

输出:

linux is great os. unix is opensource. unix is free os.
linux is great os. unix is opensource. unix is free os.
learn operating system.
linux linux which one you choose.
linux linux which one you choose.
linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

8.仅打印替换的行

使用-n选项与/p打印标志一起仅显示替换的行。在这里,-n选项抑制了由/p标志生成的重复行,并仅打印替换的行一次。

$sed -n 's/unix/linux/p' geekfile.txt

输出:

linux is great os. unix is opensource. unix is free os.
linux linux which one you choose.
linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

如果您单独使用-n而不使用/p,则sed不会打印任何内容。

9.在一系列行上替换字符串

您可以为sed命令指定一系列行号以替换字符串。

$sed '1,3 s/unix/linux/' geekfile.txt

输出:

linux is great os. unix is opensource. unix is free os.
learn operating system.
linux linux which one you choose.
unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

这里sed命令替换从1到3的行范围。另一个示例是

$sed '2,$ s/unix/linux/' geekfile.txt

输出:

unix is great os. unix is opensource. unix is free os.
learn operating system.
linux linux which one you choose.
linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful

这里表示文件中的最后一行。因此sed命令替换从第二行到文件中最后一行的文本。

10.删除特定文件中的行

SED命令还可以用于删除特定文件中的行。SED命令用于执行删除操作,甚至无需打开文件。

示例:

1.删除特定行,例如这里的第n行

语法:
$ sed 'nd' filename.txt
示例:
$ sed '5d' filename.txt

2.删除最后一行

语法:
$ sed '$d' filename.txt

3.删除从x到y的行范围

语法:
$ sed 'x,yd' filename.txt
示例:
$ sed '3,6d' filename.txt

4.删除从第n行到最后一行

语法:
$ sed 'nth,$d' filename.txt
示例:
$ sed '12,$d' filename.txt

5.删除匹配模式的行

语法:
$ sed '/pattern/d' filename.txt
示例:
$ sed '/abc/d' filename.txt

更多内容:Sed命令及示例2

结论

Linux/Unix中的sed命令是一个多功能且强大的工具,用于自动化文本编辑任务,从简单的查找替换操作到更复杂的模式匹配。无论您是处理单个文件还是需要在脚本中处理多个文件,sed都为文本操作提供了一个高效的解决方案。

Linux/Unix Sed与awk 中文第三版 本书介绍了一组名字奇特的UNIX实用工具:sed和awk。这组实用工具有很多共同的特征,譬如正则表达式在模式匹配中的应用等。模式匹配在sed和awk的使用中是很重要的部分,因此本书详尽解释了UNIX正则表达式的语法。一般情况下,从grep到sed和awk的学习过程是很自然的,所以本书涵盖了上述3个程序,而重点集中在sed和awk。 立即下载

相关推荐

Unix/Linux sed命令手册

Unix,Linux中sed命令的详解。

unix的sed 用法介绍

    sed是一个非交互性性文本编辑器,它编辑文件或标准输入导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节省了时间。sed必须通过行号和正则表达式指定要改变的文本行sed怎样读取数据:    se

9241

轨迹规划——带抛物线过渡的直线插补

带抛物线过渡的直线插补

doudou2weiwei的博客 1984

linux sed删除指定行_Linux常用命令三剑客之sed,您真的会用吗?

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言本文主要讲解Linux系统中的sed命令的作用与使用案例。sed用于查找、过滤、文本替换、替换和插入、删除等文本操作。它是Linux/Unix系统提供的强大实用程序之一。我们可以在正则表达式中使用sed。使用sed命令之前,您应该至少对Linux正则表达式有基本的了解。它提供了文...

weixin_39611031的博客 613

信创迁移实战:在银河麒麟V10-SP1上为Milvus离线部署Docker(附SP1专属避坑指南)

本文详细介绍了在银河麒麟V10-SP1 x86_64环境下离线部署Docker的全流程,特别针对该版本特有的自定义目录安装失败问题提供深度分析和解决方案。通过实战验证的步骤和避坑指南,帮助用户在信创项目中顺利完成Milvus等应用的容器化部署。

weixin_30687051的博客 532

第十九届全国大学生智能车竞赛越野信标 硬件篇

全国大学生智能汽车竞赛,越野信标组

2301_77568650的博客 4115

Unix文本处理工具之sed

和上文提到的awk一样,sed也是Unix的文本处理工具。sed是Stream Editor(流式编辑器)的缩写,它能够基于模式匹配过滤(所谓过滤就是在文件中找到符合某些条件的行)修改文本(就是对找到的符合条件的内容进行一些修改操作)。 1、sed命令格式 1.1 sed命令的基本格式 sed命令主要有三种使用形式: sed ‘编辑指令’ 文件1 文件2 ……:用于将处理后的结果输

水逝流年 2318

UE5实战:用Cesium插件打造逼真湖泊效果(附波纹参数调优技巧)

本文详细介绍了在Unreal Engine 5中利用Cesium插件创建逼真区域水效果(如湖泊)的实战流程。重点解析了通过材质层混合机制,精细调整波纹参数(如DistanceScale、NearScale)来模拟不同水体状态,并提供了从资产创建、地形配置到视觉调优的一站式解决方案,帮助开发者高效实现非海洋水域的动态视觉效果。

weixin_29209805的博客 160

sed 命令详解

一、sed概念及工作原理 1、sed 工具概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。 sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于Shell脚本中,用以完成各种自动化处理任务。 sed 依赖于正则表达式 2、sed 的工作流程 主要包括读取、执行和显示三个过程。 读取:sed 从输入流(文件、管道、标准输入)中读取一行内容

weixin_56270746的博客 1万+

Python多进程实战:用BaoStock高效下载股票历史数据的5个优化技巧

本文详细介绍了使用Python多进程技术通过BaoStock高效下载股票历史数据的5个优化技巧。从理解BaoStock的数据获取机制到进程池配置、智能任务分片、异常处理及性能监控,帮助开发者显著提升数据下载效率,特别适合量化交易领域的数据采集需求。

weixin_30369041的博客 455

人工势场法三大致命缺陷?我用ROS+Gazebo做了组对比实验

本文通过ROS与Gazebo仿真实验,深入剖析了人工势场法(APF)在机器人路径规划中的三大经典问题:局部最小值、目标不可达和路径震荡。文章不仅复现了这些缺陷,还对比测试了虚拟目标点法、改进斥力场及运动平滑等主流改进方案,为工程选型提供了基于数据的实用建议。

dapp9builder的博客 216

【嵌入式】关于sed命令的几个常用示例

sed命令的常用示例

科技改变人类,技术成就未来 4450

【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案

​ 1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18,而数据库中原始数据如下,并没有到下午5点,这就导致了FlinkCDC读出来的时间和数据库中实际的时间不一致的情况,与数据库对比可以发现,这里的时间戳与数据库时间刚好相差了 8 个小时,在实际生产中这种情况是不

一杯咖啡半杯糖的博客 3854

SED命令及示例|第2部分

我们在《SED命令及示例》中讨论了一些SED命令选项。SED用于查找、过滤、文本替换、替换以及文本操作,如插入、删除、搜索等。它是Linux/Unix系统提供的一款强大工具。我们可以将SED与正则表达式一起使用。希望你至少具备Linux正则表达式的基本知识。它提供非交互式文本文件编辑,因此用于自动化编辑,并且有两个缓冲区——模式缓冲区和保持缓冲区。SED_在读取文件时使用_模式缓冲区,逐行读取,当前读取的行被插入到模式缓冲区,而_保持缓冲区_是长期存储,它捕获信息、存储信息,并在需要时重新使用。最初,这两个

Whoisbug的博客 922

部署与可视化系统:零基础到精通:LabVIEW 调用 YOLO 动态链接库(DLL)的保姆级视觉检测系统融合实战

LabVIEW与YOLO26深度集成:工业视觉检测新范式 本文揭示了LabVIEW与最新YOLO26模型深度集成的创新方案,通过C++封装ONNX Runtime为DLL,在LabVIEW中实现端到端视觉检测。核心突破点包括: 技术选型:对比YOLOv5/YOLOv8/YOLO26性能,YOLO26在CPU推理速度提升43%,支持NMS-Free端到端推理 部署架构:提供ONNX Runtime C++ API和TensorRT两种DLL封装路径,适配不同硬件环境 工程实现:详细展示从PyTorch模型导出

ZXSXJ的博客 282

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux下Shell编程之sed命令详解及示例

Linux下Shell编程之sed命令详解及示例。

jackiendsc的博客 1104

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

sed命令简单使用示例分享

导读 Linux命令sed是“stream editor”的缩写,也就是流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。 使用Sed进行文本文件更改的示例 假设您有一个名为linuxidc.com.txt的文件,其中包含以下行: 1, linux id.

Listen2You的博客 391

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

sed命令详解与示例

grep命令的查找功能,sed命令的流编辑功能和awk(现已发展成为一门编程语言)作为更强大的文本编辑命令,在Linux系统管理中,起着重要且全面的作用。而后来出现的perl编程语言(PracticalExtraction and Report Language),可以实现sed和awk的几乎所有功能。但使用perl相对复杂和臃肿,因而sed和awk仍然活跃在shell编程的各个方面。 (1

dxm2025的专栏 569

sed命令详解+示例

sed命令解析 sed(StreamEDitor),流式编辑器 非交互式,基于模式匹配过滤及修改文本//类比:Vim是一个交互的编辑器 逐行处理,并将结果输出到屏幕 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等各种操作 语法格式: 格式1:前置命令|sed[选项]'[定址符]处理动作’ 格式2:sed[选项]'[定址符]处理动...

jsut_rick的博客 5万+

sed 命令查找和替换字符串的 16 个示例

文章转载自公众号Linux中国,作者 译者/Asche 编译:linux中国-Asche910,作者:Magesh Maruthamuthu 当你在使用文本文件时,很可能需要查找和替换文件中的字符串。sed命令主要用于替换一个文件中的文本。在 Linux 中这可以通过使用sed命令和awk命令来完成。 在本教程中,我们将告诉你使用sed命令如何做到这一点,然后讨论讨...

静__嘘的博客 2569

不可不知的Linux sed 命令技巧与示例

一、什么是 sed?sed 是一个强大的流编辑器,广泛用于Linux和类Unix系统中。它的名称来自 “stream editor” 的缩写,sed 允许在不修改源文件的情况下对文件的文本进行过滤和转换。它擅长处理数据流或文件中的文本,通过指定的规则和模式对文本进行自动化处理。二、sed 的基本用法sed 的基本语法格式为:sed [选项] '命令' 文件 • 选项:用于指定sed的行为,如-i选...

fastboot 748

linux sed命令使用教程详解和示例

Linux中的sed是一个强大的文本处理工具,全称是Stream Editor(字符流编辑器),也被称为流编辑器。sed主要用于对文本内容进行操作、过滤和转换。

firebirds1017的博客 817

sed命令详解+示例(1)

最全的Linux教程,Linux从入门到精通第一份《Linux从入门到精通》466页内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。

2401_83620690的博客 1319

sed查找文件包含字段_使用 sed 命令查找和替换文件中的字符串的 16 个示例

原标题:使用 sed 命令查找和替换文件中的字符串的 16 个示例当你在使用文本文件时,很可能需要查找和替换文件中的字符串。sed 命令主要用于替换一个文件中的文本。在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成。在本教程中,我们将告诉你使用 sed 命令如何做到这一点,然后讨论讨论 awk 命令相关的。sed 命令是什么sed 命令表示 Stream Editor(流编辑器...

weixin_39844963的博客 172
上一篇: DuckDb:Push-Based Execution 查询执行模式
下一篇: SED命令及示例|第2部分
Whoisbug
博客等级 码龄9年 894粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值