Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令
cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810,uname -r看到内核版本是3.10.0-957.el7.x86_64,sed --version可以看到sed版本是4.2.2。

echo 'a : 1 : good : g' >> sed_daicpnrwq.txt
echo 'b : 2 : well : w' >> sed_daicpnrwq.txt
echo 'c : 3 : food : f' >> sed_daicpnrwq.txt
echo 'd : 4 : hood : h' >> sed_daicpnrwq.txt
echo 'e : 5 : bell : b' >> sed_daicpnrwq.txt
echo 'o : 6 : toll : t' >> sed_daicpnrwq.txt
echo '1 : a : good : g' >> sed_daicpnrwq.txt
echo '2 : b : well : s' >> sed_daicpnrwq.txt
echo '3 : c : food : f' >> sed_daicpnrwq.txt
把下边的内容:
a : 1 : good : g
b : 2 : well : w
c : 3 : food : f
d : 4 : hood : h
e : 5 : bell : b
o : 6 : toll : t
1 : a : good : g
2 : b : well : s
3 : c : food : f
写入到sed_daicpnrwq.txt里边。

删除
sed '/寻址/d' filename就是把匹配上的内容所在那行在模式空间删除,然后改变控制流。
sed '/^1/d' sed_daicpnrwq.txt把以1开头的一行删除了,但是没有把原文件里边的内容删除。

sed '/^1/d;s/a/#/g' sed_daicpnrwq.txt没有把删除的那一行中的a替换成#,说明改变了控制流。

sed '/^1/d;=' sed_daicpnrwq.txt把以1开头的一行删除了之后把行号输出在每行上边,没有把原文件里边的内容删除。

一般先进行其他操作,然后再进行删除操作。
追加
sed '/寻址/a\插入字符' filename在匹配上的内容下边一行追加,sed '/oo/a\%%%%%' sed_daicpnrwq.txt匹配上有oo的行,然后在匹配上的每行下边插入%%%%%。

插入
sed '/寻址/i\插入字符' filename在匹配上的内容上边插入,sed '/ll/i\######' sed_daicpnrwq.txt匹配上有ll的行,然后在匹配上的每行上边插入######。

更改
sed '/寻址/c\changestring' filename把匹配上的每行改写成changestring。
sed '/well/c\testChange' sed_daicpnrwq.txt把匹配上的每行都改写成testChange。

读写文件
echo "4 : d : got : g" >> sed_rfile.txt
echo "5 : e : foot : f" >> sed_rfile.txt
把下边的内容:
4 : d : got : g
5 : e : foot : f
写入到sed_rfile.txt。

sed '/寻址/r file1' file2把file2匹配的每行输出之后,把file2中的内容输出到匹配上的行之后。
sed '/good/r sed_rfile.txt' sed_daicpnrwq.txt把sed_rfile.txt输出到sed_daicpnrwq.txt匹配到good的行之后。

下一行
sed '/good/n;/well/d' sed_daicpnrwq.txt可以转向 good匹配上的下一行删除well匹配上的一行,sed '/good/n;/good/d' sed_daicpnrwq.txt没有删除good匹配上的行,sed '/good/n;/food/d' sed_daicpnrwq.txt可以转向匹配good的下一边删除well匹配上的一行。

打印行号
sed '=' sed_daicpnrwq.txt可以打印行号。

打印
sed 'p' sed_daicpnrwq.txt把所有行都输出一遍。

sed '/^a/p' sed_daicpnrwq.txt把匹配上的行a : 1 : good : g输出。

seq
seq生成数字序列,-s是指定数字序列之间的分隔符。
seq 1 15能够生成1到15的数字序列。

seq -s "+" 1 15能够生成1+2+3+4+5+6+7+8+9+10+11+12+13+14+15的数字序列。

seq 5 -1 1能够生成从5到1数字序列,5是起始数字,-1是步长,即每次减一,1是结束数字。

seq -s "-" 5 -1 1能够生成5-4-3-2-1的数字序列。

退出
seq 1 10000 >> seq.txt生成1到10000的数字序列,然后写入到seq.txt,之后使用tail -n 10 seq.txt看一下最后10行的内容。

sed '10q' sed_daicpnrwq.txt只处理到第10行。

在sed中,q比p效率高。
此文章为8月Day 10学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。
相关文章:
Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令
cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810,uname -r看到内核版本是3.10.0-957.el7.x86_64,sed --version可以看到sed版本是4.2.2。 echo a : 1 : good : g >> sed_daicpnrwq.txt echo b : 2 : well : w >> sed…...
JuiceFS 在多云存储架构中的应用 | 深势科技分享
2020 年末,谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度,使得 “AI 预测蛋白质结构” 这一领域受到了空前的关注。今天我们邀请到同领域企业,深势科技为大家分享其搭建基础平台时的实践与思考。…...
什么是DNS的缓存?
DNS 缓存是一个临时的数据库,存储在计算机或网络设备(如路由器)上,用于保存最近的 DNS 查询结果。这种缓存机制可以加速后续的相同查询,因为设备可以直接从缓存中提取先前的查询结果,而不需要再次到外部的 …...
smtplib.SMTPHeloError: (500, b‘Error: bad syntax‘)
如果你编写邮件收发工具的时候,有可能会遇到这个问题。这里直接给出解决办法。 目录 1、检查系统版本 2、点击右侧的更改适配器选项...
/proc directory in linux
Its zero-length files are neither binary nor text, yet you can examine and display themUnder Linux, everything is managed as a file; even devices are accessed as files (in the /dev directory). Although you might think that “normal” files are either text …...
装饰器模式(C++)
定义 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 一《设计模式》 GoF 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能…...
matlab使用教程(12)—随机数种子和随机数流
1.生成可重复的随机数 1.1指定种子 本示例显示如何通过首先指定种子来重复生成随机数数组。每次使用相同种子初始化生成器时,始终都可以获得相同的结果。首先,初始化随机数生成器,以使本示例中的结果具备可重复性。 rng( default ); 现在…...
【Java】JVM GC配置指南
1、JDK版本 以下所有优化全部基于JDK8版本,强烈建议低版本升级到JDK8,并尽可能使用update_191以后版本。 2、如何选择垃圾回收器 响应优先应用:面向C端对响应时间敏感的应用,堆内存8G以上建议选择G1,堆内存较小或低…...
11.Eclipse 注释模板的说明及设置
1.在eclipse中点击Window——>java——>Code Style——>CodeTemplates——>Comments 2.常用Variable 3. 我的注释模板 ①Files 文件 /** * Title: ${file_name}* Description: ${todo}* author Jeremy* date ${currentDate:date(yyyy-MM-dd hh:mm:ss)} */ ②Typ…...
Maven父子工程项目的配置
在Java的Maven多模块(父子工程)项目中,Maven插件的配置非常重要,因为它们可以帮助你进行项目构建、测试、打包等各种任务。以下是一个简单的父子工程Maven插件配置的示例: 假设你有如下的项目结构: paren…...
jumpserver命令记录膨胀问题
一.背景 jumpserver堡垒机针对只是接管ssh来说,正常操作Linux的指令记录应该不会太多,每天有个几千条都已经算很多了。所以默认jumpserver采用MySQL作为存储介质本身也没啥问题。但是我们使用jumpserver对【MySQL应用】进行了托管,导致查询SQ…...
ControlNet
2023.8.10 Adding Conditional Control to Text-to-Image Diffusion Models 对于 T2I 扩散模型添加 条件控制 相关联比较大的几篇论文: 0.Abstract 可以为预训练的扩散模型提供额外的输入条件控制。不需要很多计算资源。 即使在小数据集上,也具有鲁棒…...
竞赛项目 深度学习图像风格迁移 - opencv python
文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…...
Windows dos文件夹与文件怎么创建与删除
在Windows操作系统中,你可以使用命令行工具(命令提示符或PowerShell)来创建和删除文件夹和文件。以下是创建和删除文件夹和文件的基本方法: 创建文件夹: 使用mkdir命令来创建文件夹(目录)。 m…...
JVM总结2
1.基本概念 java代码执行 代码编译class:javac 源文件通过编译器产生字节码文件,字节码文件通过jvm的解释器编译成机器上的机器码 装载class:ClassLoader执行class: 解释执行编译执行 client compilerserver compiler 内存管理…...
servlet三大类HttpSevlet,HttpServletRequest,HttpServletResponse介绍
一、HttpServlet HttpServlet类是一个被继承的方法,可以看做一个专门用来响应http请求的类,这个类的所有方法都是为响应http请求服务的,要对一个某个路径谁知http响应时,需要写一个类来继承HttpServlet类,并重写里面的…...
【雕爷学编程】Arduino动手做(12)---霍尔模块之霍尔磁感应声光报警器(磁控开关,接220V)
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…...
认识 SQL
文章目录 1.简介2.组成3.工作原理4.五种子语言5.注释方式6.字符串表示方式参考文献 1.简介 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化查询语言。它是一种领域特定语言(DSL&#x…...
【剑指Offer 58】翻转单词顺序,Java解密。
LeetCode 剑指Offer 75道练习题 文章目录 剑指Offer:翻转单词顺序示例:限制:解题思路:剑指Offer:翻转单词顺序 【题目描述】 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a stu…...
微服务Ribbon-负载均衡原理
目录 一、LoadBalancerIntercepor 二、LoadBalancerClient 三、负载均衡策略IRule 四、总结 上一篇中,我们添加了LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? SpringCloud底层其实是利用了一个名为Ribbon的组件&…...
EF Core 10向量搜索不是“加个NuGet包”那么简单:一位资深架构师用12小时重构遗留系统的真实复盘
第一章:EF Core 10向量搜索扩展的架构定位与演进本质EF Core 10 向量搜索扩展并非孤立的功能补丁,而是微软在数据访问层深度整合 AI 原生能力的战略锚点。它标志着 ORM 从“关系映射”范式向“语义感知查询”范式的结构性跃迁——将向量计算能力下沉至查…...
kill-doc:智能文档下载效率工具,让内容获取化繁为简
kill-doc:智能文档下载效率工具,让内容获取化繁为简 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本…...
低查重AI教材写作攻略:工具选择、流程步骤与案例解析
谁没有过为教材框架而苦恼的经历呢?面对一片空白的文档,有时甚至会傻傻地发愣半个小时。该先讲解概念,还是当即提供案例呢?章节划分应该根据逻辑还是按课时进行?即使经常调整大纲,最终得到的结果要么不符合…...
8款热门数据治理工具深度测评,哪款功能最强大?
业务要报表,数据散在 ERP、CRM、Excel 十几个系统里,跨部门取数要等好几天。好不容易凑齐数据,财务和业务口径不一致,核心指标算出来两个数。数据越多越混乱,找数据比用数据难,这些问题都是因为数据治理没做…...
OpenClaw调试技巧:Gemma-3-12b-it任务失败时的7种诊断方法
OpenClaw调试技巧:Gemma-3-12b-it任务失败时的7种诊断方法 1. 为什么需要系统化的调试方法 上周我让OpenClaw配合Gemma-3-12b-it模型自动整理项目文档时,遇到了一个诡异现象:任务开始时运行正常,但在处理到第三个Markdown文件时…...
大模型后训练:小白也能掌握的进阶秘籍,收藏提升技能!
后训练是提升大模型性能的关键步骤,通过微调和对齐技术优化预训练模型。文章详细解析了后训练的理论与方法,涵盖微调(SFT)、强化学习(RL)及对齐技术,并以Llama 3为例展示实际操作流程。核心内容…...
Qwen2.5-0.5B如何快速上手?新手入门必看部署实操指南
Qwen2.5-0.5B如何快速上手?新手入门必看部署实操指南 你是不是也对最近火热的开源大模型Qwen2.5系列感到好奇?特别是那个号称“小身材大能量”的Qwen2.5-0.5B-Instruct模型。它只有5亿参数,却继承了阿里通义千问系列强大的指令跟随和多语言能…...
全新版Java面试八股文.pdf出炉, 简直把所有 Java 知识面试题写出来了
作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万,而…...
JAVA:Spring Boot 集成 RDF4J 实现欺诈技术检测
1、简述 在大数据、知识图谱和金融风控等领域,RDF(Resource Description Framework) 是一种用于表示和查询关联数据的强大工具。RDF4J 是一个流行的 Java 库,用于操作 RDF 数据集,并支持 SPARQL 查询,能够帮助我们进行复杂的欺诈检测。 项目的核心功能: RDF 数据存储:…...
Testsigma企业级自动化测试平台架构设计与高可用部署指南
Testsigma企业级自动化测试平台架构设计与高可用部署指南 【免费下载链接】testsigma Testsigma is an agentic test automation platform powered by AI-coworkers that work alongside QA teams to simplify testing, accelerate releases and improve quality across web, m…...
