当前位置: 首页 > news >正文

Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810uname -r看到内核版本是3.10.0-957.el7.x86_64sed --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' file2file2匹配的每行输出之后,把file2中的内容输出到匹配上的行之后。
sed '/good/r sed_rfile.txt' sed_daicpnrwq.txtsed_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能够生成115的数字序列。
在这里插入图片描述
seq -s "+" 1 15能够生成1+2+3+4+5+6+7+8+9+10+11+12+13+14+15的数字序列。
在这里插入图片描述

seq 5 -1 1能够生成从51数字序列,5是起始数字,-1是步长,即每次减一,1是结束数字。
在这里插入图片描述
seq -s "-" 5 -1 1能够生成5-4-3-2-1的数字序列。
在这里插入图片描述

退出

seq 1 10000 >> seq.txt生成110000的数字序列,然后写入到seq.txt,之后使用tail -n 10 seq.txt看一下最后10行的内容。
在这里插入图片描述

sed '10q' sed_daicpnrwq.txt只处理到第10行。
在这里插入图片描述

sed中,qp效率高。

此文章为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)允许向一个现有的对象添加新的功能&#xf…...

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的组件&…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

腾讯云V3签名

想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...