sed编辑器命令

news2024/12/25 14:39:33

sed编辑器

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

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

sed 的工作流程主要包括读取、执行和显示三个过程:
•读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
•执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
•显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。
命令格式:

方式一:sed -e '操作' 文件1 文件2

方式二:sed -n  -e '操作' 文件1 文件2 ....

方式三:sed -f  脚本文件  文件1 文件2......

方式四:sed -i -e   '操作'   文件1 文件2 ....

方式五:sed -e 'n{

操作1

操作2

...

}'  文件1 文件2 ......

-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)

[root@cx ~]# cat test 
one
two
three
four
five
six
seven
night
nine
ten
eleven
twelve
[root@cx ~]# cat test | sed -n 'p'     #不显示,只打印内容
one
two
three
four
five
six
seven
night
nine
ten
eleven
twelve
[root@cx ~]# cat test | sed -n '='    #打印行号
1
2
3
4
5
6
7
8
9
10
11
12
[root@cx ~]# cat test |sed -n '=' | tail -1  #打印最后一个行号
12
[root@cx ~]# cat test | wc -l      #统计行数
12

[root@cx ~]# cat test |sed -n -e 'p' -e '='  #执行两个命令需要加-e
one
1
two
2
three
3
four
4
five
5
six
6
seven
7
night
8
nine
9
ten
10
eleven
11
twelve
12
[root@cx ~]# 
[root@cx ~]# cat test |sed -n  '=;p'   #或者分号表示

 

 

 

 

 

 

 删除格式:

sed '行号d'   删除指定行号的行

sed '行1,行2d' 删除行1与行2区间的行

sed '/字符串/d' 删除包含字符串的行

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

sed '/字符串1/,/字符串2/d'从第一个包含字符串1的行开始删除到从第一个包含字符串2的行,之后重复规则操作到结束

 

 

 

 替换格式:

sed   's/旧字符串/新字符串/'  替换匹配行的第一个字符串 

sed   's/旧字符串/新字符串/2' 替换匹配行的第二个字符串

sed   's/旧字符串/新字符串/g' 替换匹配行的所有字符串

sed   's/旧字符串/新字符串/gw  file' 替换匹配行的所有字符串并保存到file

sed   '/字符串/   s/旧字符串/新字符串/g'    

替换分隔符可以用其他字符代替,要确保分隔符一致

 

 

 

 

 

 插入格式:

sed '行号 a  XXX'    在指定行下面插入内容

sed '/字符串/a  XXX'    

sed '行号i  XXX'      在指定行上面插入内容
sed '/字符串/i  XXX'  

sed '行号 c  XXX'      替换指定行的所有行内容

sed 'y/abc/123'         替换所有对应字符

sed '行号 r  file'         在指定行下面读取文件file

 

 补充

sed '1,2H;3,4G'  将1,2行内容复制到3和4行下面

sed  '/字符串/ {H,d};$G'    将包括字符串的行剪切到末尾

echo 'ABCD'  | sed -r   's/^(.)(.*)(.)$/\3\2\1/'

得到DBCA

 

 

 

 

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

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

相关文章

Nat. Commun | 中国海洋大学张伟鹏组揭示海洋生物被膜群落硫氧化主要菌群及其作用机制...

海洋生物被膜玫瑰杆菌的厌氧硫氧化机制 Anaerobic thiosulfate oxidation by the Roseobacter group is prevalent in marine biofilms Article,2022-04-11,Nature Communications,[IF 17.7] DOI:10.1038/s41467-023-37759-4 原文…

Apache Hive函数高阶应用、性能调优

Hive的函数高阶应用 explode函数 explode属于UDTF函数,表生成函数,输入一行数据输出多行数据。 功能: explode() takes in an array (or a map) as an input and outputs the elements of the array (map) as separate rows.--explode接收…

「 操作系统 」CPU缓存一致性协议MESI详解

「 操作系统 」CPU缓存一致性协议MESI详解 参考&鸣谢 缓存一致性协议MESI 小天 CPU缓存一致性协议MESI 枫飘雪落 CPU缓存一致性协议(MESI) 广秀 2.4 CPU 缓存一致性 xiaoLinCoding 文章目录 「 操作系统 」CPU缓存一致性协议MESI详解一、计算机的缓存一致性二、CPU高速缓存…

100种思维模型之长远思考思维模型-63

古语有云:“人无远虑,必有近忧!” 任正非说:不谋长远者,不足以谋一时! 长远思考思维,一个提醒我们要运用长远眼光,树立宏大目标,关注长期利益的思维模型 01何谓长远思考…

深度学习架构的对比分析

深度学习的概念源于人工神经网络的研究,含有多个隐藏层的多层感知器是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示,以表征数据的类别或特征。它能够发现数据的分布式特征表示。深度学习是机器学习的一种,而机器学习是…

浅谈数据资产测绘系统的作用和挑战

随着数据被定义为第五大生产要素,数据已经成为数字经济发展的核心驱动力。数据资源的充分利用和开放共享给政企单位带来便利的同时,也带来了相应的数据安全风险。因此,摸清并动态掌握数据资产情况,持续进行数据资产测绘就成为企业…

Golang每日一练(leetDay0066) 有效电话号码、转置文件

目录 193. 有效电话号码 Valid Phone Numbers 🌟 194. 转置文件 Transpose File 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 193. 有效电话号…

IDEA常用配置和插件总结

文章目录 1\. 配置1.1 设置编译版本1.2 设置编码1.3 自动导包1.4 自动编译1.5 设置主题1.6 设置字体字号1.7 滚轮修改字体大小1.8 控制台字体1.9 行号与方法分隔符1.10 忽略大小写字母1.11 多行显示1.12 设置 Maven1.13 GitHub 账户1.14 配置 Git1.15 配置文件隐藏1.16 配置相同…

java中List与AbstractList

一、List 接口 List 接口继承了 Collection 接口,在 Collection 接口的基础上增加了一些方法。相对于 Collection 接口,我们可以很明显的看到,List 中增加了非常多根据下标操作集合的方法,我们可以简单粗暴的分辨一个方法的抽象方…

C++——动态管理(类和对象收尾)

作者:几冬雪来 时间:2023年5月14日 内容:C内存管理讲解 目录 前言: 1.类的对象(收尾): 1.友元函数: 2.内部类: 3.匿名对象: 4.优化: 2.…

常见基础算法

一、排序 & 查找算法 1.1 冒泡排序 相邻的数据进行比较。每次遍历找到一个最大值。 public void sort(int[] nums) {if (nums null) {return;}for (int i 0; i < nums.length; i) {for (int j 0; j < nums.length - 1 - i; j) {if (nums[j] > nums[j 1]…

Python每日一练(20230515) 只出现一次的数字 I\II\III

目录 1. 只出现一次的数字 Single Number 2. 只出现一次的数字 II Single Number II 3. 只出现一次的数字 III Single Number III &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 leetcod…

开源项目ChatGPT-website再次更新,累计下载使用1600+

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

数据交换方式(电路,报文,虚电路分组交换,数据报分组交换)

电路交换&#xff1a; 电路交换是通信网中最早出现的一种交换方式&#xff0c;在进行数据传输前&#xff0c;两个结点之间必须先建立一条专用&#xff08;双方独占&#xff09;的物理通信链路。该线路在整个数据传输期间一直被独占&#xff0c;用户始终占用端到端的固定传输带…

python实现带有操作界面的计算器程序,实现基本的数值计算,支持负数、小数、加减乘除等运算。

一、程序要求 python实现带有操作界面的计算器程序,实现基本的数值计算,支持负数、小数、加减乘除等运算。 预期计算器界面如下: 二、代码实现 1、python3自带tkinter,可以用来做可视化界面: import tkinter as tk import re 2、新建窗口对象,设置高宽、设置标题和背景…

【分布族谱】正态分布和对数正态分布的关系

文章目录 正态分布对数正态分布的推导测试 正态分布 正态分布&#xff0c;最早由棣莫弗在二项分布的渐近公式中得到&#xff0c;而真正奠定其地位的&#xff0c;应是高斯对测量误差的研究&#xff0c;故而又称Gauss分布。。测量是人类定量认识自然界的基础&#xff0c;测量误差…

UEFI 界面实例解析

这篇文章主要记录一些setup界面的实例&#xff0c;这些实例都是EDK上的&#xff0c;我们可以看到如下图&#xff1a; 上面三个为banner&#xff0c;下面的都是通过LABLE动态加载的&#xff0c;代码如下&#xff1a; 我们可以看到 UiListThirdPartyDrivers (HiiHandle, &gEf…

Sentinel 熔断降级和黑白名单控制

一、熔断降级 1、概述 除了流量控制以外&#xff0c;对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块&#xff0c;可能是另外的一个远程服务、数据库&#xff0c;或者第三方 API 等。例如&#xff0c;支付的时候&#xff0c;…

【C++ 入坑指南】(06)运算符

文章目录 一、算术运算符二、赋值运算符三、比较运算符四、逻辑运算符五、算法题5.1、拆分位数 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 运算符类型作用算术运算符用于处理四则运算赋值…

交换机配置第十二讲(ACL访问控制)

1.实验介绍 设备规划 类型名称数量终端PC3路由器AR22403 IP规划 主机 ip链接交换机端口网关client1192.168.1.2AR1-g/0/0/0192.168.1.1client2192.168.2.2AR2-g/0/0/1192.168.2.1client3192.168.3.2AR3-g/0/0/1192.168.3.1 2. 连线图介绍 连线顺序 3. 基础配置介绍 我们首…