linux系统sed编辑器

news2025/1/24 5:00:57

sed编辑器

  • sed编辑器
    • sed基础语法
    • sed查询
    • sed删除
    • sed 替换
    • sed 插入

sed编辑器

  • sed是文本处理工具,依赖于正则表达式,可以读取文本内容,工具指定条件对数据进行添加、删除、替换等操作,被广泛应用于shell脚本,以完成自动化处理任务。
  • sed在处理数据时默认不直接修改原文件,而是把当前处理的行存储在临时缓存区中,所有指令都在缓冲区中操作,处理完成后,把缓冲区内容默认输出到屏幕,接着处理下一行内容,这样不断重复,直到文件末尾,文件本身内容没有改变
  • sde是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
  • 编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。

sed基础语法

  • 命令语法:

    • sed 选项 ‘编辑命令’ 文件1 文件2
  • 常用选项

选项作用
-e指定要执行的命令,只有一个编辑命令时可省略。
-n只输出处理后的行,读入时不显示
-i直接编辑文件,而不输出结果
-f表示用指定的脚本文件来处理输入的文本文件
-h显示帮助
  • 编辑指令格式:

    • 【地址1】 【,地址2】 操作 【参数】
    • 与grep一样,Sed在文件查找是也可以使用正则表达式和各种元字符。这里的“地址”就可以是正则表达式,也可以是数字、$,如果没有地址就代表是所有的行。
  • 常用的“操作”及作用

指令作用
p输出指定的行
d删除指定的行
s字串替换,格式:‘行范围 s/旧字符串/新字符串/g’
r读取指定文件
w保存为文件
i插入,在当前行前面插入一行或多行
a插入,在当前行下面插入一行或多行
q表示退出
H复制
G粘贴

sed查询

  • sed -n ‘行号p’ :查看指定行信息

  • sed ‘5q’ :打印前5行信息后退出,q表示退出

  • sed -n ‘行1,行2p’ :查看从行1到行2的信息

  • sed -n ‘行1,+np’ :查看行1及行1后的n行信息

  • sed -n ‘3 {p;n;n;p}’ :n可以帮我们实现换行,p实现打印

  • sed -n ‘/字符串/ p’ :打印包含字符串的行

  • sed -n ‘/正则表达式/ p’ :打印所有包含正则能够匹配到的内容的行

使用演示:
sed -n ‘行号p’ :查看指定行信息
在这里插入图片描述
sed -n ‘行1,行2p’ :查看从行1到行2的信息

在这里插入图片描述
sed -n ‘行1,+np’ :查看行1及行1后的n行信息

在这里插入图片描述
sed -n ‘3 {p;n;n;p}’ :n可以帮我们实现换行,p实现打印
在这里插入图片描述
在这里插入图片描述
sed -n ‘/字符串/ p’ :打印包含字符串的行

在这里插入图片描述

sed -n ‘/正则表达式/ p’ :打印所有包含正则能够匹配到的内容的行

在这里插入图片描述

sed删除

sed ‘行号 d’ : 删除指定行号的行

sed ‘行1,行2 d’ : 删除行1与行2之间的行

sed ‘/字符串/ d’ :删除包含字符串的行

sed ‘/正则表达式/ d’ :删除所有包含正则能够匹配的到的内容的行

sed ‘行号,/字符串/ d’ :删除从指定行到第一个包含字符串的行

sed ‘/字符串1/,/字符串2/ d’ :从第一个字符串1的行开始删除到 第一个扫描到的字符串2的行,之后会继续扫描包含字符串1的行,然后继续执行删除和扫描字符串2的操作

使用演示:
sed ‘行号 d’ : 删除指定行号的行
在这里插入图片描述
sed ‘行1,行2 d’ : 删除行1与行2之间的行

在这里插入图片描述
sed ‘/字符串/ d’ :删除包含字符串的行
在这里插入图片描述

sed ‘/正则表达式/ d’ :删除所有包含正则能够匹配的到的内容的行
在这里插入图片描述

sed ‘行号,/字符串/ d’ :删除从指定行到第一个包含字符串的行
在这里插入图片描述

sed ‘/字符串1/,/字符串2/ d’ :从第一个字符串1的行开始删除到 第一个扫描到的字符串2的行,之后会继续扫描包含字符串1的行,然后继续执行删除和扫描字符串2的操作
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

sed 替换

  • sed ‘s/旧字符/新字符/’ :替换每行匹配到的第一个旧字符
  • sed ‘s/旧字符/新字符/n’ : 替换每行匹配到的第n个旧字符
  • sed ‘s/旧字符/新字符/g’ :替换每行匹配到的所有旧字符
  • sed ‘s/旧字符/新字符/w file’ :把替换后的行内容保存到指定文件
    • sed -n ‘s/旧字符/新字符/gp’ > file
  • sed ‘行号 s/旧字符/新字符/’ : 替换指定行的第一个匹配到的的字符串 最后加上g就是替- 换所有匹配到的旧字符
  • sed ‘行1,行2 s/旧字符/新字符/g’ :替换行1与行2区间的匹配行的对应的字符串
  • sed ‘/字符串/ s/旧字符/新字符/g’
  • sed ‘/正则表达式/ s/旧字符/新字符/g’
  • s/xx/xx/:后面的替换分隔符可以使用其他字符代替,需要确保三个分隔字符保持一致
  • sed ‘行号c xxxx’ 替换指定行的整行内容
  • sed ‘y/abc/123/’ 替换所有相对应的字符功能类似tr

使用演示:
== sed ‘s/旧字符/新字符/替换选项’ 替换选项可以指定第几个旧字符进行替换,g表示全行替换==
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sed ‘s/旧字符/新字符/w file’ :把替换后的行内容保存到指定文件
在这里插入图片描述
== sed -n ‘s/旧字符/新字符/gp’ > file ==
在这里插入图片描述
sed ‘行号 s/旧字符/新字符/’ : 替换指定行的第一个匹配到的的字符串 最后加上g就是替- 换所有匹配到的旧字符
在这里插入图片描述
sed ‘行1,行2 s/旧字符/新字符/g’ :替换行1与行2区间的匹配行的对应的字符串
在这里插入图片描述

sed ‘/字符串/ s/旧字符/新字符/g’
在这里插入图片描述

sed ‘/正则表达式/ s/旧字符/新字符/g’
在这里插入图片描述

s/xx/xx/:后面的替换分隔符可以使用其他字符代替,需要确保三个分隔字符保持一致
在这里插入图片描述
在这里插入图片描述

sed ‘行号c xxxx’ 替换指定行的整行内容

在这里插入图片描述

sed ‘y/abc/123/’ 替换所有相对应的字符功能类似tr
在这里插入图片描述

sed 插入

  • sed ‘行号i xxxx’ :在指定行上面插入xxxx

  • sed ‘行号a xxxx’ :在指定行下面插入xxxx

  • sed ‘行号r file’ :在指定行下面读取文件内容

  • sed ‘/root/{H;d};$G’ /etc/passwd :将包含root的行剪切到末尾,H表示复制;G表示粘贴

  • sed ‘1,2H;3,4G’ /etc/passwd :将1到2行复制到3和4行下面

  • echo “111222333” | sed -r ‘s/(111)(222)/\2\1/’ :将字符111和222互换位置

使用演示:
sed ‘行号i xxxx’ :在指定行上面插入xxxx
在这里插入图片描述
sed ‘行号a xxxx’ :在指定行下面插入xxxx

在这里插入图片描述

sed ‘行号r file’ :在指定行下面读取文件内容
在这里插入图片描述

sed ‘/行数/{H;d};$G’ :将指定行剪切到末尾,H表示复制;G表示粘贴
在这里插入图片描述

sed ‘1,2H;3,4G’ :将1到2行复制到3和4行下面
在这里插入图片描述

echo “111222333” | sed -r ‘s/(111)(222)/\2\1/’ :将字符111和222互换位置
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我所了解的老板

我所了解的老板 修心篇以名命物 扰我心良心的本来如此 是我心不要全挑剔别人 既是我因 受我之果长久之爱 美女养眼 贤妻养心 调研篇深度思考确定趋势确定时机预测筹划生存资料 做事篇做短视频心态,也是创业的心态做销售冠军的心态,也是创业的心态 修心篇…

【Python--定时任务的四种方法】

定时任务 前言while True:sleep()优点缺点 threading.Timer定时器多线程执行优点缺点 Timeloop库执行定时任务调度模块schedule优缺点 前言 当每隔一段时间就要执行一段程序,或者往复循环执行某一个任务,这就需要使用定时任务来执行程序。应…

【Unity项目实战】手把手教学:飞翔的小鸟(7)障碍对象池

承接上一篇:【Unity项目实战】手把手教学:飞翔的小鸟(6)添加障碍,我们已经生成了一个障碍物柱子,并且使得小鸟在越过柱子之后自动获得一分,接下来将继续讲解障碍物的随机生成。 一.脚本控制 障…

Centos7设置静态IP

Centos7设置静态IP及修改后不能联网问题解决方式 虚拟机外部配置1、打开Vmware选择虚拟网络编辑器菜单2、获取管理员权限,选择VMnet8,并点击还原默认设置,弹窗选择“是”。3、修改VMnet8的参数4、NAT设置5、确认虚拟机为NAT模式 虚拟机内部配…

数据流图(DFD)

目录 第十二章、数据流图(DFD)1、数据流图基本概念2、数据字典3、数据平衡原则4、数据流图试题解题技巧4.1、试题一4.2、试题二 第十二章、数据流图(DFD) 1、数据流图基本概念 数据流图是用于表示系统逻辑模型的一种工具。从数据…

【Swift】Swift和Objective-c混编

1.介绍 Swift和Objective-C都是苹果公司的编程语言,它们可以在同一个项目中同时使用。这种混编方式被称为“混合编程”(Mixed Programming)。 在混合编程时,我们需要用到一个桥接文件(Bridging Header)&a…

AfxMessageBox的两种用法

1 函数简介 函数声明如下: int AfxMessageBox(LPCTSTR lpszText,UINT nType MB_OK,UINT nIDHelp 0 ); int AFXAPI AfxMessageBox(UINT nIDPrompt,UINT nType MB_OK,UINT nIDHelp (UINT ) -1 );1.1 参数 lpszText 将显示在消息框的字符串。 nType 消息框…

使用Selenium模拟百度登录

前言 前面我已经安装好了Selenium并模拟成功了一下打开百度页面并进行查询,让我这个python初学者信心倍增,今天再来试一试百度登录 正文 把打开百度的代码放到构造方法中 ps:那个文件目录是用于后面滑块验证图片保存的。 def __init__(self):driver w…

Python实战基础8-列表

一、列表的基本使用 1.列表的格式 定义列的格式:[元素1,元素2,元素3,...,元素n] 变量tmp的类型为列表 tmp [XiaoChen,180,66.0] 列表中的元素可以是不同类型的 2.使用下标获取列表元素 namesList [XiaoChen,Xia…

上海AI lab提出VideoChat:可以与视频对话啦

夕小瑶科技说 原创 作者 | 小戏、ZenMoore 视频相比语言、图像,是更复杂更高级的一类表征世界的模态,而视频理解也同样是相比自然语言处理与计算机视觉的常见工作更复杂的一类工作。在当下大模型的洪流中,自然而然的想法就是大规模语言模型…

子矩形计数(多少个面积为k的全1子矩阵)【思维,两个一维数组相乘得到矩阵,计算一维数组中长度为x的全1子段】

3617. 子矩形计数&#xff08;多少个面积为k的全1子矩阵&#xff09; 输入样例1&#xff1a; 3 3 2 1 0 1 1 1 1输出样例1&#xff1a; 4输入样例2&#xff1a; 3 5 4 1 1 1 1 1 1 1 1输出样例2&#xff1a; 14#include <bits/stdc.h> using namespace std; #define …

Redisson锁的分析

文章目录 一、分布式锁概念1、实现思路2、出现死锁问题如何避免死锁问题 锁过期和释放当前不属于当前线程的锁解决不是加锁线程释放锁锁的过期时间如何解决 二、Redisson分布式锁Redis的部署方式对锁的影响集群模式Redlock实现高可靠的分布式锁 三、代码分析V1代码无锁V2代码单…

【C++从0到王者】第二站:类和对象(中)赋值运算符重载

文章目录 一、运算符重载1.运算符重载的使用2.运算符重载的注意事项 二、赋值运算符重载1.复制拷贝与拷贝构造2.赋值运算符重载的格式3.赋值运算符重载的实现4.赋值运算符重载的注意事项 一、运算符重载 1.运算符重载的使用 当我们实现一个日期类的时候&#xff0c;我们有时候…

Angular开发之——Angular打包部署项目(04)

一 概述 ng build 构建应用lite-server介绍及安装lite-server部署应用IIS管理器部署应用 二 ng build 构建应用 2.1 执行如下指令构建应用 ng build2.2 构建完成后&#xff0c;会创建一个 dist 文件夹 2.3 直接打开index.html会出错(需要借助于服务器部署) 三 lite-server介…

(二)PUN 2基本教程

一、介绍 PUN 基础教程是一个基于 Unity 的教程。我们将使用 Photon Cloud 开发第一个简单的 PUN 2 多人游戏。目标是同步每个玩家的动画角色、健康值和基本光线投射。 1.概述 本教程将从一个空项目开始&#xff0c;逐步指导您完成整个创建过程。在此过程中&#xff0c;将解释…

Halcon 形态学 开发案例 (开运算opening(先腐蚀再膨胀)、闭运算closing(先膨胀再腐蚀))

文章目录 1 形态学概念2 开运算 opening2.1 算子介绍2.2 开运算 开发案例3 闭运算 closing3.1 算子介绍3.2 闭运算 开发案例4 示例原图1 形态学概念 图像的形态学处理是对图像的局部像素进行处理,用于从图像中提取有意义的局部图像细节。 通过改变局部区域的像素形态,以对目…

数据结构与算法基础知识

线性结构篇 什么是数据结构与算法 回顾我们之前的C语言程序设计阶段&#xff0c;我们已经接触过基本数据类型&#xff0c;并且能够使用结构体对数据进行组织&#xff0c;我们可以很轻松地使用一个结构体来存放一个学生的完整数据&#xff0c;在数据结构学习阶段&#xff0c;我…

Linux篇1

Linux 1. 概述1.1 内容概要1.2 Linux发展1.3 Linux对比Windows 2. 虚拟机下安装CentOS系统2.1 下载安装VMware2.1.1 官网下载VMware软件2.1.2 安装VMware 2.2 下载CentOS镜像2.3 创建虚拟机&#xff08;在虚拟机中安装CentOS&#xff09;2.3.1 创建虚拟硬件环境2.3.2 安装CentO…

从匆匆的一瞥,到两小时泯灭(SQL注入)

从匆匆的一瞥&#xff0c;到两小时泯灭&#xff08;SQL注入&#xff09; 惊鸿一瞥用户名提示jsBase64.js文件手搓轮子&#xff08;python&#xff09;反复搓轮子&#xff08;python-tamper&#xff09; 惊鸿一瞥 昨天晚上分别开了我相识已久的女友&#xff0c;再度回到了单身狗…

暗月内网靶场渗透笔记

简介 靶场下载地址&#xff1a; 靶场地址&#xff1a; https://pan.baidu.com/s/12pSYxSU-ZmurQ9–GFiaXQ 提取码: 3p47虚拟机网络设置&#xff1a; 靶场拓扑图&#xff1a; 靶机账号密码&#xff1a; 信息收集 内网扫描 靶机就在本地&#xff0c;直接进行本地内网扫描即可…