shell脚本----sed命令

news/2024/11/9 2:41:17/

文章目录

  • 一、sed的工作流程
  • 二、sed的操作
  • 三、Sed命令使用
    • 3.1打印内容
    • 3.2删除行
    • 3.3替换
    • 3.4插入
    • 3.5分组调用

一、sed的工作流程

sed概述
sed编辑器时一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。

sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要存储在一个命令文本文件中。

sed工作流程
sed 的工作流程主要包括读取、执行和显示三个过程:

  • 读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
  • 执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
  • 显示font>:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。

PS:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。

二、sed的操作

常用选项:

选项作用
-e 或–expression=:表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f 或–file=:表示用指定的脚本文件来处理输入的文本文件。
-h 或–help:显示帮助。
-n、–quiet 或 silent:禁止sed编辑器输出,但可以与p命令一起使用完成输出。
-i:直接修改目标文本文件。

常用操作:

选项作用
s:替换,替换指定字符。
d:删除,删除选定的行。
a:增加,在当前行下面增加一行指定内容。
i:插入,在选定行上面插入一行指定内容。
c:替换,将选定行替换为指定内容。
y:字符转换,转换前后的字符长度必须相同。
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出。其通常与“-n”选项一起使用。
=:打印行号。
l(小写L):打印数据流中的文本和不可打印的ASCII字符(比如结束符$、制表符\t)

三、Sed命令使用

3.1打印内容

1、查看文件,打印全部内容,-n的作用就是阻止sed编辑器的输入

在这里插入图片描述

在这里插入图片描述

2、打印指定行内容

在这里插入图片描述

在这里插入图片描述

3、使用地址来输出

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如何通过以上的方式输出奇数行和偶数行

奇数行:

在这里插入图片描述

偶数行:

在这里插入图片描述

4、支持正则表达式

在这里插入图片描述

在这里插入图片描述

3.2删除行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3替换

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4插入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.5分组调用

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/66701.html

相关文章

java获取登陆用户ip方法

今天和大家分享一下获取登录用户 ip的方法,如果你想获取自己的登陆用户 ip,可以参考以下思路: 1.可以通过 Java动态链接库的方式获取到,方法很简单,就是把需要的 ip地址添加到动态链接库中,然后在需要用到时…

linux:查找相关命令find与grep

find 语法 在指定目录下查找文件和目录。 find [path] [expression]path:是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。 exp…

Java 中String对象详解

Java语言中的String对象是一个非常常见的数据类型,大多数情况下我们都是在使用String对象来表示字符串类型的数据。Java中的String类是一个final class,它是不可被继承的。本文将对Java中的String对象进行详细全面的描述,包括以下几个方面&am…

Dijkstra算法图解,C++实现Dijkstra算法

目录 Dijkstra算法简介数据结构抽象初始化开始计算第一轮计算第二轮计算第三轮计算第四轮计算算法总结 C实现Dijkstra算法 Dijkstra算法简介 Dijkstra算法计算是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起…

【算法】Smallest Integer Divisible by K 可被 K 整除的最小整数

文章目录 Smallest Integer Divisible by K 可被 K 整除的最小整数问题描述:分析代码 Tag Smallest Integer Divisible by K 可被 K 整除的最小整数 问题描述: 问题 给定正整数 k ,你需要找出可以被 k 整除的、仅包含数字 1 的【最小正整数…

k8s巡检脚本

#!/bin/bash #检查kubectl是否已经安装 if ! command -v kubectl &> /dev/null then echo -n "kubectl 未安装,请先安装kubectl"exitfi echo -e “开始集群状态信息收集/” #检查集群状态: echo -n “检查集群正常状态:” kubectl cluster…

Apache FtpServer在Windows上使用以及SpringBoot中集成apache ftpserver实现Ftp 服务端搭建

场景 Apache Ftpserver Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且 可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行, 也可以嵌入Java应用程序中。我们还提供…

springboot+vue高校社团管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的高校社团管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…