Linux shell编程学习笔记75:sed命令——沧海横流任我行(下)

0 前言
在
Linux shell编程学习笔记73:sed命令——沧海横流任我行(上)-CSDN博客文章浏览阅读684次,点赞32次,收藏24次。在大数据时代,我们要面对大量数据,有时需要对数据进行替换、删除、新增、选取等特定工作。在Linux中提供很多数据处理命令,如果我们要以行为单位进行数据处理,可以使用sed命令。https://blog.csdn.net/Purpleendurer/article/details/141307421?spm=1001.2014.3001.5501中,我们研究了sed的基础知识。
在
Linux shell编程学习笔记74:sed命令——沧海横流任我行(中)-CSDN博客
https://blog.csdn.net/Purpleendurer/article/details/141369789?spm=1001.2014.3001.5501中,我们见识了sed删除和替换功能的威力。
现在我们通过一些实例来见识一下sed插入等功能的威力。
1 sed实列
1.1 插入行
1.1.1 前插
我们可以使用i命令(insert)来完成前插。
1.1.1.1 在第3行、第4行前插入'abc'
命令为:
sed '3,4i\abc'
其中sed命令的参数说明如下:
3,4 :指定第3行、第4行
i:在前插入命令
\abc:要插入的字符串
[purpleendurer @ bash ~] seq 7 | cat -n1 12 23 34 45 56 67 7
[purpleendurer @ bash ~] seq 7 | cat -n | sed '3,4i\abc'1 12 2
abc3 3
abc4 45 56 67 7
[purpleendurer @ bash ~]

1.1.1.2 在开头前插入'abc'
命令为:
sed -e '1i\abc'
其中sed命令的参数说明如下:
-e:解释脚本
1 :指定第1行
i:在前插入命令
\abc:要插入的字符串
[purpleendurer @ bash ~] seq 7 | cat -n1 12 23 34 45 56 67 7
[purpleendurer @ bash ~] seq 7 | cat -n | sed -e '1i\abc'
abc1 12 23 34 45 56 67 7
[purpleendurer @ bash ~]

1.1.1.3 在所有包含1的行前插入'abc'
命令为:
sed '/1*/i\abc'
[purpleendurer @ bash ~] seq 11 | cat -n 1 12 23 34 45 56 67 78 89 910 1011 11
[purpleendurer @ bash ~] seq 11 | cat -n | sed '/1*/i\abc'
abc1 1
abc2 2
abc3 3
abc4 4
abc5 5
abc6 6
abc7 7
abc8 8
abc9 9
abc10 10
abc11 11
[purpleendurer @ bash ~]
1.1.2 追加(后插)
我们可以使用a命令(append)来完成追加(后插)。
1.1.2.1在第3行及其后2行后追加'abc'
命令为:
sed '3,+2a\abc'
[purpleendurer @ bash ~] seq 7 | cat -n1 12 23 34 45 56 67 7
[purpleendurer @ bash ~] seq 7 | cat -n | sed '3,+2a\abc'1 12 23 3
abc4 4
abc5 5
abc6 67 7
[purpleendurer @ bash ~]

1.1.2.2 在末尾追加'abc'
命令为:
sed '$a\abc'
[purpleendurer @ bash ~] seq 7 | cat -n1 12 23 34 45 56 67 7
[purpleendurer @ bash ~] seq 7 | cat -n | sed '$a\abc'1 12 23 34 45 56 67 7
abc
[purpleendurer @ bash ~]

1.1.2.3 在偶数行后追加2行信息,第1行是abc,第2行是def
命令为:
sed '0~2a\abc\
def'
[purpleendurer @ bash ~] seq 5 | cat -n1 12 23 34 45 5
[purpleendurer @ bash ~] seq 5 | cat -n | sed '0~2a\abc\
def'1 12 2
abc
def3 34 4
abc
def5 5
[purpleendurer @ bash ~]
1.1.2.4 在所有包含1的行后面追加abc
命令为:
sed '/1/aabc'
[purpleendurer @ bash ~] seq 10 | cat -n1 12 23 34 45 56 67 78 89 910 10
[purpleendurer @ bash ~] seq 10 | cat -n | sed '/1/aabc'1 1
abc2 23 34 45 56 67 78 89 910 10
abc
[purpleendurer @ bash ~]

1.1.2.5 在只含有1个1的行后面追加abc
命令为:
sed '/1$/aabc'
[purpleendurer @ bash ~] seq 10 | cat -n1 12 23 34 45 56 67 78 89 910 10
[purpleendurer @ bash ~] seq 10 | cat -n | sed '/1$/aabc'1 1
abc2 23 34 45 56 67 78 89 910 10
[purpleendurer @ bash ~]

1.2 打印行号
我们可以使用等号(=)来代表行号。
命令为:
sed '='
[purpleendurer @ bash ~] echo "aaa" > t.txt
[purpleendurer @ bash ~] echo "bbb" >> t.txt
[purpleendurer @ bash ~] echo "ccc" >> t.txt
[purpleendurer @ bash ~] cat t.txt
aaa
bbb
ccc
[purpleendurer @ bash ~] sed '=' t.txt
1
aaa
2
bbb
3
ccc
[purpleendurer @ bash ~]

相关文章:
Linux shell编程学习笔记75:sed命令——沧海横流任我行(下)
0 前言 在 Linux shell编程学习笔记73:sed命令——沧海横流任我行(上)-CSDN博客文章浏览阅读684次,点赞32次,收藏24次。在大数据时代,我们要面对大量数据,有时需要对数据进行替换、删除、新增、…...
探索Scratch中的物理世界:碰撞与重力的编程之旅
标题:探索Scratch中的物理世界:碰撞与重力的编程之旅 Scratch是一款由麻省理工学院媒体实验室开发的编程教育工具,它以图形化编程界面为特色,让初学者能够轻松地学习编程基础。Scratch不仅支持基本的编程逻辑,如循环、…...
大模型重塑就医体验:医联MedGPT助力健康中国建设
来源:新华网 2024 08/22 11:24:15 【责任编辑:吴起龙】 随着“百模大战”的加速推进,AI大模型的应用逐渐成为各行业关注的焦点。在这一背景下,医疗行业也迎来了AI技术的深度渗透。自2023年起,百度、科大讯飞、百川智能、商汤…...
TOMCAT全解
目录 一 、WEB技术简介 HTTP协议 B/S 结构 前端三大核心技术简介 HTML CSS JavaScript 二 、WEB框架 web资源和访问 后台应用架构 三、tomacat的介绍 四、tomcat的部署 tomcat的反向代理 tomcat的负载均衡 memcached的安装与启动 tomcat的session会话保持 一 、WE…...
UDP+TCP
一、UDP协议 1.recvfrom:recvform(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen); 参数:socket的fd; 保存数据的空间地址 ; 空间大小; 默认接收方式(默认阻塞…...
分页查询面试记录和面试详情
文章目录 1.分页查询面试记录1.req和vo1.InterviewHistoryReq.java2.InterviewHistoryVO.java 2.InterviewController.java3.service1.InterviewHistoryService.java2.InterviewHistoryServiceImpl.java 4.测试 2.查询面试详情1.InterviewQuestionHistoryVO.java2.InterviewCon…...
Oracle 同义词SYNONYM 的实战使用
Oracle中的同义词(SYNONYM)是一种数据库对象,它为其他数据库对象(如表、视图、序列、存储过程、函数等)提供了一个别名。这个别名可以在SQL语句中代替原始对象的名称,从而简化查询和引用,提高数…...
实验11-1-8 查找子串
本题要求实现一个字符串查找的简单函数。 函数接口定义: char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。 输入样例1: The C Programming Language ram输出样…...
Git存储库添加空目录-添加占位文件
Git本身并不会跟踪和管理空目录,它只会记录和管理文件的变化。因此,在操作空目录时,我们需要借助一些技巧来实现我们的需求。通过添加一个空的.gitignore或.gitkeep文件或添加一个占位文件,我们可以欺骗Git,并使其将空…...
基于x86 平台opencv的图像采集和seetaface6的人脸识别功能
目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸识别功能,opencv通过读取本地图像,将采集的本地图像送给seetaface6的人脸识别模块从而实现人脸识…...
Git 的基本使用
1.创建 Git 本地仓库 仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来,例如下面代码创建了gitcode_linux的文件夹,之后再对其进行初始化。创建⼀个 Git 本地仓库对应的命令为 git init ,…...
如何解决 Cloudflare | 使用 Puppeteer 和 Node.JS
我认为,现在自动化任务越多,越能体现它们的价值,因此挑战也变得更加明显和困难。例如,Cloudflare 目前提供了强有力的安全措施来保护网站免受所有形式的自动化工具的侵扰。 但对于从事自动化项目(如网络爬虫、数据提取…...
笔记redis
Redis 介绍 Redis(Remote Dictionary Server)是用C语言开发的一个基于内存的键值对数据库 所有数据都在内存中,访问速度非常快:读的速度是110000次/s,写的速度是81000次/s适合存储热点数据(商品、新闻资…...
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱接入 🌟 手机短信与邮箱短信验证码的应用场景 在现代应用中,短信和邮箱验证码是用户验证和安全管理的关键组成部分。它们广泛应用于注册、登录、找回密码等场景…...
RAID 方案比较
RAID(Redundant Array of Independent Disks)技术用于将多个磁盘驱动器组合成一个逻辑单元,以提高性能、可靠性或两者兼顾。以下是常见 RAID 级别的比较: RAID 0(条带化) 磁盘数量:最少 2 块可…...
零成本搭建个人 APP 和小程序后台
前言 前面也说了,通过 GitHub PagesGitHub Actions 只是解决了动态数据展示,但是要零成本得完成将用户信息存储下来,并实现数据交互呢? 我开始是想用云文档,种种原因,我还是希望有个自己能二次修改的后台…...
LCP 633 平方数之和 [leetcode - 8]
最近是在研究双指针啊,leetcode刷的题都是这方面的。都记录在最近的文章里,大家有兴趣可以去我主页看看 LCP633 平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入&…...
c语言试题及答案
1. 一个C程序的组成部分可以是( )。 A) 一个主函数和一至若干个其他函数 B) 一至若干个主函数 C) 一个主程序和一至若干个其他函数 D) 一个主程序和一至若干个子程序 2. 一个C程序的执行是从( )。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函…...
python实现链表
什么是链表 链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接最终串联成一个链表。 python实现一个简单链表 我们可以用python实现一个超级简单的链表 class node:# 初始化数据def __init_…...
Linux Shell 编程基础入门(一)
😀前言 本篇博文是关于自动化工具Shell 编程的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Springboot 高校报修与互助平台小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,高校报修与互助平台小程序被用户普遍使用,为…...
