当前位置: 首页 > 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;扮演着至关重要的角色。它不仅是企业运营…...

小程序对商家私域运营到底有多重要?

小程序对商家私域运营到底有多重要&#xff1f;在企业持续获取客户成本不断上升的背景下&#xff0c;越来越多商家开始关注“私域运营”&#xff0c;而小程序也逐渐成为这一体系中的核心工具。小程序对商家私域运营的重要性&#xff0c;本质上体现在“用户沉淀能力与转化效率的…...

Z-Image-Turbo LoRA WebUI实战案例:为独立游戏开发者生成角色立绘素材

Z-Image-Turbo LoRA WebUI实战案例&#xff1a;为独立游戏开发者生成角色立绘素材 1. 项目概述与价值 作为一名独立游戏开发者&#xff0c;你是否曾经为角色立绘的设计而头疼&#xff1f;传统的美术外包成本高昂&#xff0c;自己绘制又需要专业技能。现在&#xff0c;通过Z-I…...

如何搭建与使用 `ZhongFuCheng3y/austin` 开源项目

如何搭建与使用 ZhongFuCheng3y/austin 开源项目 【免费下载链接】austin 消息推送平台&#x1f525; 推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 项目地址: https://gitcode.com/GitHub_Trending/au/austin 本教程旨在帮助…...

网络安全零基础入门:借助快马AI生成你的第一个防注入登录页面

作为一名刚接触网络安全的小白&#xff0c;我最近尝试用InsCode(快马)平台做了一个防注入的登录页面。整个过程比想象中简单很多&#xff0c;特别适合零基础入门。这里分享我的实践心得&#xff0c;希望能帮到同样想学习网络安全的朋友。 为什么选择登录页面作为切入点 登录功…...

PFC(5.0)模拟:GBM模型(grain- based model ) pb-sj或pb-...

PFC(5.0)模拟:GBM模型&#xff08;grain- based model &#xff09; pb-sj或pb-pb 单轴压缩。 模拟花岗岩等矿物晶体岩石&#xff0c;多种矿物晶体模型&#xff0c;其中矿物种类 数量分布可以自定义。 可以监测sj裂纹&#xff0c;和各矿物内裂纹。PFC5.0的GBM模型玩岩石破裂是真…...

CoPaw个人助理深度体验:多通道对话+定时执行,解放双手的实用工具

CoPaw个人助理深度体验&#xff1a;多通道对话定时执行&#xff0c;解放双手的实用工具 1. CoPaw简介与核心功能 CoPaw是一款基于Qwen3-4B-Instruct-2507模型的个人助理型产品&#xff0c;由AgentScope团队开发。它最大的特点是能够部署在用户自己的环境中&#xff0c;实现数…...

PP-DocLayoutV3实操手册:display_formula公式块检测准确率提升的3个微调技巧

PP-DocLayoutV3实操手册&#xff1a;display_formula公式块检测准确率提升的3个微调技巧 1. 引言&#xff1a;为什么公式检测这么重要&#xff1f; 在文档数字化处理过程中&#xff0c;数学公式的准确检测一直是个技术难点。传统的OCR系统往往把公式误判为普通文本或图像&…...

别再花钱买内网穿透服务了!手把手教你用frp+Linux云服务器搭建自己的专属通道

零成本打造私有内网穿透通道&#xff1a;frp与Linux云服务器实战指南 你是否曾为远程访问家中NAS、调试开发环境或搭建私有云服务而烦恼&#xff1f;市面上动辄数百元的商业内网穿透服务不仅价格高昂&#xff0c;还常受限于带宽和稳定性。本文将带你用一台基础配置的Linux云服…...

终极音乐解锁方案:在浏览器中实现加密音乐文件高效转换完整指南

终极音乐解锁方案&#xff1a;在浏览器中实现加密音乐文件高效转换完整指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地…...

终极Win11Debloat优化指南:简单4步让你的Windows 11飞起来

终极Win11Debloat优化指南&#xff1a;简单4步让你的Windows 11飞起来 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...