当前位置: 首页 > news >正文

Sed流编辑器总结

  sed 是 Unix 和 Linux 系统中的一个强大的流编辑器。它用于对文本进行基本的修改和处理。以下是关于 sed 的详细解说,包括其基本语法,常见用法和一些高级用法。

基本语法

sed [选项] '命令' 输入文件

常见选项

  • -e:指定要执行的 sed 命令。
  • -f:指定包含 sed 命令的脚本文件。
  • -i:直接修改文件内容(小心使用)。
  • -n:取消默认输出,适合与 p 命令一起使用来控制输出。
  • -r:使用扩展正则表达式。
  • -s:将输入文件视为独立的文件,而不是一个长的流。
常用命令

  • s: 替换
  • p: 打印
  • d: 删除
  • a: 追加文本在当前行后
  • i: 插入文本在当前行前
  • c: 替换行
  • q: 退出
  • y: 转换字符

基本命令

 -n 可以抑制默认输出,只输出第2行:

    sed -n '2p' file.txt

搜索和替换

  • 基本替换语法sed 's/原文本/新文本/' 输入文件
echo "hello world" | sed 's/world/universe/'  # 输出:hello universe

  • 全局替换g
echo "hello world world" | sed 's/world/universe/g'  # 输出:hello universe universe

  • 指定第几个替换:(指定第二个替换)
echo "hello world world" | sed 's/world/universe/2'  # 输出:hello world universe

  • 匹配模式替换
echo "hello world" | sed '/world/s/hello/hi/'  # 输出:hi world

指定行进行替换

  • 在特定行进行替换
sed '2s/original/replacement/' file.txt  # 替换第2行的内容

  • 在行号范围内替换
sed '2,4s/original/replacement/' file.txt  # 在第2到第4行进行替换

  • 匹配模式进行替换
sed '/pattern/s/original/replacement/' file.txt  # 在包含pattern的行进行替换

删除行

  • 删除指定行
sed '2d' file.txt  # 删除第2行**删除行号范围内的行**sed '2,4d' file.txt  # 删除第2到第4行

  • 删除匹配模式的行
sed '/pattern/d' file.txt  # 删除包含pattern的行

插入和追加文本

  • 在指定行前插入文本
sed '2i\插入的文本' file.txt  # 在第2行前插入文本

  • 在指定行后追加文本
sed '2a\追加的文本' file.txt  # 在第2行后追加文本

替换整个文件

使用 -i 选项可以直接在文件内执行替换操作

sed -i 's/original/replacement/g' file.txt  # 直接修改文件内容,替换所有匹配项

高级用法

多点编辑

可以通过 -e 选项进行多次编辑。

sed -e 's/old1/new1/' -e 's/old2/new2/' file.txt

使用脚本文件

如果有一系列的 sed 命令,可以将它们放在一个脚本文件中,然后使用 -f 选项执行。

# commands.sed
s/original/replace1/
s/old/replace2/# 使用命令执行
sed -f commands.sed file.txt

替换时使用正则表达式
echo "abc123def" | sed -r 's/[0-9]+/[digits]/'  # 输出:abc[digits]def

保留备份文件

在使用 -i 选项时,可以通过添加扩展名来保存备份。

sed -i.bak 's/original/replacement/' file.txt  # 修改文件内容并保留备份 file.txt.bak

只打印匹配的行

结合 -n 选项和 p 命令,只打印与特定模式匹配的行。

sed -n '/pattern/p' file.txt

处理多行文本
# 交换每两行的内容
sed 'N;s/\(.*\)\n\(.*\)/\2\n\1/' file.txt  # 将每两行交换位置

复杂替换示例
# 假设file.txt 内容如下:
# alpha beta
# gamma deltased 's/\([aeiou]\)/<\1>/g' file.txt  # 将所有元音替换为<元音>
# alpha beta => <a>lph<a> b<e>t<a>
# gamma delta => g<a>mm<a> d<e>lt<a>

总结

命令/选项含义示例
-n取消默认输出sed -n 'p' file.txt
-e script允许多行脚本sed -e 's/foo/bar/' -e 's/baz/qux/' file.txt
-i[SUFFIX]直接编辑文件,备份可选sed -i 's/foo/bar/g' file.txt
-r使用扩展正则表达式sed -r 's/[0-9]+/NUMBER/' file.txt
s/old/new/g替换文本sed 's/foo/bar/g' file.txt
p打印行sed -n '2p' file.txt
d删除行sed '3d' file.txt
a\text在当前行后追加文本sed '3a\Hello World' file.txt
i\text在当前行前插入文本sed '3i\Hello World' file.txt
c\text替换行sed '3c\Hello World' file.txt
{}指定区间的操作sed '2,4{s/foo/bar/g}' file.txt
y/abc/ABC/转换字符sed 'y/abc/ABC/' file.txt
q退出sed '5q' file.txt

相关文章:

Sed流编辑器总结

sed 是 Unix 和 Linux 系统中的一个强大的流编辑器。它用于对文本进行基本的修改和处理。以下是关于 sed 的详细解说&#xff0c;包括其基本语法&#xff0c;常见用法和一些高级用法。 基本语法 sed [选项] 命令 输入文件常见选项 -e&#xff1a;指定要执行的 sed 命令。-f&a…...

智合同丨AIGC如何助力合同智能应用

#AIGC #合同智能应用 #智合同 AIGC&#xff0c;即人工智能生成内容技术&#xff08;Artificial Intelligence Generated Content&#xff09;&#xff0c;近期在各个领域发展可谓是如火如荼&#xff0c;那么它在合同智能应用方面可以提供哪些助力&#xff1f; 让我们和智合…...

CSRF 令牌的生成过程和检查过程

在 Django 中,CSRF 令牌的生成和检查过程是通过 Django 的 CSRF 中间件 (CsrfViewMiddleware) 和模板标签 ({% csrf_token %}) 自动处理的。以下是详细的生成和检查过程: CSRF 令牌的生成过程 用户访问页面: 当用户第一次访问页面时,Django 会为用户创建一个会话。如果用户…...

计算机网络学习记录 网络层 Day4(下)

计算机网络学习记录 网络层 Day4 &#xff08;下&#xff09; 你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我…...

3、前端本地环境搭建

前端本地环境搭建 安装node [node下载地址] https://nodejs.org/en/download/prebuilt-installer 选择LTS的版本进行下载 下载后直接双击点击&#xff0c;选择自己想要安装到的目录一直点下一步即可&#xff08;建议不要安装到c盘&#xff09; 安装完成后配置环境变量&am…...

Python爬取城市空气质量数据

Python爬取城市空气质量数据 一、思路分析1、寻找数据接口2、发送请求3、解析数据4、保存数据二、完整代码一、思路分析 目标数据所在的网站是天气后报网站,网址为:www.tianqihoubao.com,需要采集武汉市近十年每天的空气质量数据。先看一下爬取后的数据情况: 1、寻找数据…...

【MyBatisPlus条件构造器】

文章目录 什么是条件构造器&#xff1f;使用步骤1. 引入 MyBatisPlus 依赖2. 创建实体类3. 使用条件构造器查询4. 执行查询 示例代码 什么是条件构造器&#xff1f; 条件构造器是 MyBatisPlus 提供的一种灵活的查询条件设置方式&#xff0c;它可以帮助开发者构建复杂的查询条件…...

容器多机部署eureka及相关集群服务出现 Request execution failed with message: AuthScheme is null

预期部署方案&#xff1a;两个eureka三个相关应用 注册时应用出现&#xff1a;Request execution failed with message: Cannot invoke “Object.getClass()” because “authScheme” is null&#xff0c;一开始认为未正确传递eureka配置的账户密码&#xff0c;例&#xff1a;…...

Qt Graphics View Framework 使用教程

欢迎来到 Qt Graphics View Framework 的世界&#xff01;本教程将引导您了解这一强大工具的基础知识&#xff0c;并教您如何开始使用它来创建丰富的 2D 图形界面。无论您是编程新手还是经验丰富的开发者&#xff0c;本教程都将帮助您快速上手。 基本概念 Qt Graphics View F…...

【调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持】

调试笔记-系列文章目录 调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 文章目录 调试笔记-系列文章目录调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 前言一、调试环境操作系统&#xff1a;Windows 10 专业版调试环境调试…...

flink实战--⼤状态作业调优实践指南-Flink SQL 作业篇

简介 作为一种特定领域语言,SQL 的设计初衷是隐藏底层数据处理的复杂性,让用户通过声明式语言来进行数据操作。而Flink SQL 由于其架构的特殊性,在实现层面通常需引入状态后端 配合 checkpoint 来保证计算结果的最终一致性。目前 Flink SQL 生成状态算子的策略由优化器根据配…...

数据结构:顺序串

目录 1.顺序串是什么&#xff1f; 2.顺序串常见操作和应用 3.包含头文件 4.结点设计 5.接口函数定义 6.接口函数实现 7.顺序串测试案列 顺序串是什么&#xff1f; 顺序串&#xff0c;用于存储和操作字符串。在顺序串中&#xff0c;字符串被存储在一个连续的内存块中&#xff0c…...

掌握复选框(Checkbox)的奥秘:全选与反选功能实现

前言&#xff1a; 在网页设计中&#xff0c;复选框&#xff08;Checkbox&#xff09;是一种常见且实用的交互元素&#xff0c;它允许用户从一系列选项中选择多个项。无论是电子商务网站上的商品筛选&#xff0c;还是在线表单的数据收集&#xff0c;复选框都发挥着重要作用。然…...

一篇文章带你搞懂C++引用(建议收藏)

引用 6.1 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 比如&#xff1a;李逵&#xff0c;在家称为"铁牛"&#xff0c;江湖上人称&quo…...

查询SQL:文章浏览1

问题描述 请查询出所有浏览过自己文章的作者 结果按照 id 升序排列。 查询结果的格式如下所示&#xff1a; 题目分析&#xff1a; 这题主要考察排序asc&#xff08;升序&#xff09;、desc&#xff08;降序&#xff09;以及distinct字段。 解决方案&#xff1a; select DIS…...

android 在onCreate方法中获得view的宽高

view在绘制完成后才会有自己的宽高&#xff0c;所以在onCreate中要获得view的宽高可以通过以下4中方法&#xff1a; 1、ViewTreeObserver&#xff1a;监听界面绘制事件&#xff0c;在layout时调用&#xff0c;使用完毕后记得removeListener 2、view.post&#xff0c;因为runn…...

SOA主要协议和规范

Web服务作为实现SOA中服务的最主要手段。首先来了解Web Service相关的标准。它们大多以“WS-”作为名字的前缀&#xff0c;所以统称“WS-*”。Web服务最基本的协议包括UDDI、WSDL和SOAP&#xff0c;通过它们&#xff0c;可以提供直接而又简单的Web Service支持&#xff0c;如图…...

30、matlab现代滤波:维纳滤波/LMS算法滤波/小波变换滤波

1、信号1和信号2的维纳滤波 实现代码 N 2000; %采样点数 Fs 2000; %采样频率 t 0:1 / Fs:1 - 1 / Fs; %时间序列 Signal1 sin(2*pi*20* t) sin(2*pi*40* t) sin(2*pi*60* t); Signal2[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1…...

HTML5 视频 Vedio 标签详解

HTML5 引入了 <video> 标签&#xff0c;允许开发者在网页中直接嵌入视频文件&#xff0c;而不需要依赖第三方插件。本文将全面介绍 <video> 标签的各种属性&#xff0c;并通过实例代码详细说明其用法。 一、基础用法 1. 基本结构 HTML5 中使用 <video> 标…...

三十五篇:数字化转型的引擎:赋能企业的ERP系统全景

数字化转型的引擎&#xff1a;赋能企业的ERP系统全景 1. 引言 在这个快速变化的数字时代&#xff0c;现代企业面临着前所未有的挑战和机遇。企业资源计划&#xff08;ERP&#xff09;系统&#xff0c;作为数字化转型的核心&#xff0c;扮演着至关重要的角色。它不仅是企业运营…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...