sed命令多行处理
1. sed 如何工作的
sed 维护两个空间:
- 模式空间
- 保留空间
sed是以行为周期来处理文本的。
- sed从输入流中读取一行,去掉最后的换行符,把它放入模式空间。
- 随后执行命令,每个命令都有关联的地址和条件,只有匹配时才执行命令。
- 当脚本命令执行完后,模式空间的内容被打印到输出流中(-n选项不出现),在最后加上换行符。
- 回到1
一般情况下,模式空间的内容在进行下一次循环时会删除;而保留空间则不会。
2. 多行处理技巧
多行处理命令
- D 从模式空间删除一行,重新开始循环
- G 从保留空间拿一行加到模式空间最后
- H 从模式空间拿一行加到保留空间最后
- N 从输入文件中拿一行加到模式空间
- P 输出模式空间的第一行内容
命令看不懂还是直接看脚本吧
- 打印相邻两行
$ seq 6 | sed -n 'N;l;D'
1\n2$
2\n3$
3\n4$
4\n5$
5\n6$
多读取一行,再打印,最后删除第一行。
- 处理段落
sed '/./{H;$!d} ; x ; s/REGEXP/REPLACEMENT/'
前面的表示,非空行的时候把模式空间的东西放到保留空间。
x
表示把保留空间内容复制到模式空间;
空行的时候再执行查找替换命令。
- n与N区别
printf '%s\n' aa bb cc dd | sed ':x ; n ; = ; bx'
printf '%s\n' aa bb cc dd | sed ':x ; N ; = ; bx'
printf '%s\n' aa bb cc dd | sed ':x ; n ; s/\n/***/ ; bx'
printf '%s\n' aa bb cc dd | sed ':x ; N ; s/\n/***/ ; bx'
n
命令先打印模式空间内容,再清空它;再读取下一行内容。
N
命令先将读入的下一行放入模式空间,累计读取的内容,最后打印。
3. 分支与循环
上面的其实已经用到了循环
b
无条件跳转t
条件成立时跳转T
条件不成立时跳转:
标号
还是看脚本吧
- 合并行
sed ':x ; /=$/ { N ; s/=\n//g ; bx }' jaques.txt
另一种写法
sed ':x ; $!N ; s/=\n// ; tx ; P ; D' jaques.txt
- sed去换行符
sed ':a;N;$!ba;s/\n//g' file
$!
最后一行的意思
4. ref
gnu_sed
相关文章:
sed命令多行处理
1. sed 如何工作的 sed 维护两个空间: 模式空间保留空间 sed是以行为周期来处理文本的。 sed从输入流中读取一行,去掉最后的换行符,把它放入模式空间。随后执行命令,每个命令都有关联的地址和条件,只有匹配时才执行…...
Secure Copy Protocol or SCP - 安全拷贝协议
Secure Copy Protocol or SCP - 安全拷贝协议 1. scp 文件传输1.1. 将远程文件拷贝到本地1.2. 将本地文件拷贝到远程1.3. 将远程目录拷贝到本地 References Secure Copy (remote file copy program) The SCP program is a software tool implementing the SCP protocol as a s…...
Java面试题:什么是Java的值传递和引用传递?列举其应用场景,并说明其特点
在Java中,值传递和引用传递是两种不同的参数传递机制。它们在Java程序中扮演着重要的角色,影响着方法如何接收和处理参数。了解这两种传递机制对于编写高效、可靠的Java代码至关重要。 值传递(Pass by Value) 值传递是指在调用方…...
Java 基于微信小程序的智能停车场管理小程序
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
python基础——类型注解【变量,函数,Union】
📝前言: 上一篇文章Python基础——面相对象的三大特征提到,python中的多态,python中,类型是动态的,这意味着我们不需要在声明变量时指定其类型。然而,这可能导致运行时错误,因为我们…...
人工智能研究生前置知识—科学计算库numpy
人工智能研究生前置知识—科学计算库numpy numpy是python中做科学计算的基础库,对数组进行操作 整个numpy的操作和使用比较简单因此可以通过案例的学习掌握基本的用法在之后的学习中不断的进行熟悉和补充 创建数组(矩阵 ) 创建的ndarray数组…...
element UI 设置type=“textarea“ 禁止输入框缩放
背景 在 Element UI 中,当您使用 el-input 组件并设置 type"textarea" 时,默认情况下,用户可以通过拖动输入框的右下角来调整其大小。如果您想禁止这种缩放行为,需要使用 CSS 来覆盖默认的浏览器行为。 注意上图&#x…...
Rust腐蚀服务器常用参数设定详解
Rust腐蚀服务器常用参数设定详解 大家好我是艾西,一个做服务器租用的网络架构师上期我们分享了rust腐蚀服务器的windows系统搭建方式,其中启动服务器bat参数因为涉及的东西比较多所以想通过这篇文章给大家做一下详细的分享。 (注本文中xxxx…...
无人机巡检技术革命性变革光伏电站运维管理
在中国广袤的大地上,光伏电站如雨后春笋般崛起,晶体硅组件板在阳光下熠熠生辉,为人们带来了源源不断的绿色能源。然而,随着光伏产业的迅猛发展,电站运维管理面临着前所未有的挑战。而无人机巡检技术的引入,…...
【学习】软件信创测试中,如何做好兼容性适配
在软件信创测试的领域中,兼容性适配是至关重要的一环。如何确保软件在不同的操作系统、硬件设备和软件环境中稳定运行,是每个测试人员需要面对的挑战。本文将从几个方面探讨如何做好兼容性适配,以提高软件的稳定性和用户体验。 首先…...
阿里云ACK k8s集群迁移
1、创建k8s集群 阿里云ACK创建 2、创建所需的第三方插件 ACK ingress创建 3、导出原有ACK集群配置 包含deployment、service、ingress、PersistentVolumeClaim 执行命令 kubectl get deployment,service,secret,ingress,PersistentVolumeClaim -n <namespace_name> -o y…...
1.3 字符设备驱动
1、字符设备驱动工作原理 2、file_operations结构体 struct file_operations { struct module *owner; //拥有该结构的模块的指针,一般为THIS_MODULES loff_t (*llseek) (struct file *, lof…...
计算机毕业设计springboot小区物业报修管理系统m8x57
该物业报修管理系统实施的目的在于帮助物业管理企业升级员工管理、住户管理、报修问题管理等内部管理平台,整合物业管理企业物力和人力,全面服务于维修人员管理的内部管理需求,并重视需求驱动、管理创新、与业主交流等外部需求,通过物业管理企业各项资源…...
深度学习体系结构——CNN, RNN, GAN, Transformers, Encoder-Decoder Architectures算法原理与应用
1. 卷积神经网络 卷积神经网络(CNN)是一种特别适用于处理具有网格结构的数据,如图像和视频的人工神经网络。可以将其视作一个由多层过滤器构成的系统,这些过滤器能够处理图像并从中提取出有助于进行预测的有意义特征。 设想你手…...
js 数字的常用方法梳理
toFixed:保留几位小数。toFixed(保留小数位)。注意:不做任何的四舍五入。 Math集合: random:获取一个0-1之间的随机数。注意,包含0,不包含1。 round:四舍五入取整数,最后返回一个整数值。 ceil:向上取整。 floor:…...
STM32H743VIT6使用STM32CubeMX通过I2S驱动WM8978(5)
接前一篇文章:STM32H743VIT6使用STM32CubeMX通过I2S驱动WM8978(4) 本文参考以下文章及视频: STM32CbueIDE Audio播放音频 WM8978 I2S_stm32 cube配置i2s录音和播放-CSDN博客 STM32第二十二课(I2S,HAL&am…...
Objective-C学习笔记(block,协议)4.10
1.block:是一个数据类型,存储一段代码,代码可以有参数有返回值。 2.声明block: 返回值类型 (^block变量名称)(参数列表); int (^myblock) (int num1,int num2); 代码段格式:^返回值类型(参数列表){ 代码段 }; int (^m…...
AD7982BRMZRL7 二进制 500kSPS 模数转换芯片 ADI
AD7982BRMZRL7是一款由Analog Devices(亚德诺)公司生产的18位逐次逼近型模数转换器(ADC)。它主要用于将模拟信号转换为数字信号,适用于数据采集系统、嵌入式系统、工业控制和医疗设备等领域。 AD7982BRMZRL7的主要功能…...
采集某新闻网资讯网站保存PDF
网址:融资总额近3亿美元、药明康德押注,这家抗衰老明星公司有何过人之处-36氪 想要抓取文章内容,但是找不到啊,可能是文字格式的问题,也可能文章内容进行了加密。 在元素中查看,window.initialState返回的就…...
03攻防世界-unserialize3
根据题目可以看出,这是个反序列化的题目 打开网址观察题目可以看到这里是php的代码,那么也就是php的反序列化 本题需要利用反序列化字符串来进行解题,根据源码提示我们需要构造code。 序列化的意思是:是将变量转换为可保存或传输…...
蓝桥杯备考随手记: 常见的二维数组问题
在Java中,二维数组是一种可以存储多个元素的数据结构。它由多个一维数组组成,这些一维数组可以看作是行和列的组合,形成了一个矩阵。 1. 二维数组旋转问题 二维数组的旋转是指将数组中的元素按照一定规则进行旋转。通常有两种常见的旋转方式…...
Java | Leetcode Java题解之第28题找出字符串中第一个匹配项的下标
题目: 题解: class Solution {public int strStr(String haystack, String needle) {int n haystack.length(), m needle.length();if (m 0) {return 0;}int[] pi new int[m];for (int i 1, j 0; i < m; i) {while (j > 0 && needl…...
【数据结构与算法】:二叉树经典OJ
目录 1. 二叉树的前序遍历 (中,后序类似)2. 二叉树的最大深度3. 平衡二叉树4. 二叉树遍历 1. 二叉树的前序遍历 (中,后序类似) 这道题的意思是对二叉树进行前序遍历,把每个结点的值都存入一个数组中,并且返回这个数组。 思路&…...
uniapp——长按识别二维码
说明 转变思路,长按图片,进入预览图片,这时候再长按就可以了。 <view class"codeMain"><view class"codeWhite" longpress"handleLongPress(i.image(qrcode))"><image :src"i.image(qrc…...
云服务器环境web环境搭建之JDK、redis、mysql
一、Linux安装jdk,手动配置环境 链接: https://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1whttps://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1w 提取码: 0413 tar -xvf 压缩包名 修改配置文件/etc/profile 二、安装redis环境 方案一: Linux下安装配置r…...
第1章 计算机网络体系结构
王道学习 【考纲内容】 (一)计算机网络概述 计算机网络的概念、组成与功能;计算机网络的分类; 计算机网络的性能指标 (二)计算机网络体系结构与参考模型 计算机网络分层结…...
Docker之自定义镜像上传至阿里云
一、Alpine介绍 Alpine Linux是一个轻量级的Linux发行版,专注于安全、简单和高效。它采用了一个小巧的内核和基于musl libc的C库,使得它具有出色的性能和资源利用率。 Alpine Linux的主要特点包括: 小巧轻量:Alpine Linux的安装…...
《深入Linux内核架构》第2章 进程管理和调度 (2)
目录 2.4 进程管理相关的系统调用 2.4.1 进程复制 2.4.2 内核线程 2.4.3 启动新程序 2.4.4 退出进程 本专栏文章将有70篇左右,欢迎关注,订阅后续文章。 2.4 进程管理相关的系统调用 2.4.1 进程复制 1. _do_fork函数 fork vfork clone都最终调用_…...
(四)PostgreSQL的psql命令
PostgreSQL的psql命令 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777psql 是 PostgreSQL 数据库的命令行界面…...
前端使用minio传输文件
minio官方文档 minio-js可以支持ts。 安装完可能会出现 Can‘t import the named export ‘xxx‘ from non EcmaScript module (only default export is available)可以尝试降低minio的版本 npm install minio7.0.18 --save代码: 初始化 const Minio require(…...
如何把自己做的网站挂网上/优秀营销软文范例800字
1、背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作。 要在离线环境下看…...
网站信息内容建设实施办法/北京昨天出啥大事了
资料来源 https://opensource.com/alternatives/gmail本文是对原文翻译,在调试 privmx 时么有成功,这些代码大多用于 php5 ,对PHP7 不兼容。相关资料 https://www.oschina.net/news/66088/open-source-alternatives-gmailhttps://webmail.…...
网站开发 . 漫游指南/企业培训课程名称大全
目录 贝叶斯定理 贝叶斯分类 朴素贝叶斯分类器 贝叶斯网络 VS 朴素贝叶斯 贝叶斯网络 条件概率表集合 贝叶斯网络的构造…...
天津网站建设渠道/网络推广的渠道
SteamVR2.0(我这里用v2.5版本)的动作捕捉与MFC中的变量绑定很相像,大致分三步 (1).在SteamVR Input中定义量A 变量类型决定可绑定哪个动作。比如要检测手柄扣板机动作,可以检测是否扣了扳机(对应bool变量)…...
jquery 网站模板/关联词有哪些类型
前言 **一年中第一段跳槽高潮就要来了,**看到同事一个个离职,又有一部分同事已经找到满意的工作,于是自己也盲目的开始面试起来(期间也没有准备充分),日夜奔走,简历投了很多家公司,…...
美国人做网站用的是什么字体/成品ppt网站国外
版权说明,本文参考tonymacx86的[Guide] Patching DSDT/SSDT for LAPTOP backlight control 如果转载,请注明原文地址:http://blog.csdn.net/wr132/article/details/54849387 前言 注意:本教程主要使用于Intel HD Graphic系列显卡…...