sed命令
目录
一、sed
1.sed命令选项
2.语法选项
3.sed脚本格式
4.搜索替代
5.分组后向引用
1.提取版本号:
2.提取IP地址
3.提取数字权限
6.变量
二、免交互
1.多行重定向
2.免交互脚本
总结:本章主要介绍了seq和免交互的用法及相关知识
一、sed
sed是行编辑器
sed [选项] '语法1' [input file]
1.sed命令选项
-n 不输出模式空间内容到屏幕(关闭自动打印)
-e 多点编辑
-f 从指定文件中读取编辑脚本
-r,-E 使用扩展正则表达式
-i.bak 备份文件并原处编辑(修改前会先备份文件)
-ir 不支持
-i -r 支持
-ri 支持
-ni 会清空未匹配的行
2.语法选项
p 打印
q 退出
d 删除
a 追加
c 替换
i 添加
w 第二行写入文件
= 显示行号
r 读取指定文件的文本至文件的行前
sed 会自动打印:
[root@localhost sy]# sed '' /etc/fstab#
# /etc/fstab
# Created by anaconda on Mon Oct 9 18:28:14 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=c691f6ac-d1a0-46ad-b02b-7c6256963e6b /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[root@localhost sy]#
sed支持重定向输入:
[root@localhost sy]# sed '' </etc/fstab#
# /etc/fstab
# Created by anaconda on Mon Oct 9 18:28:14 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=c691f6ac-d1a0-46ad-b02b-7c6256963e6b /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[root@localhost sy]#
3.sed脚本格式
#:指定的行,$:最后一行
#,# 从#行到#行
#,+# 从#行到+#行 如3,+4表示3,7行
/pat1/ ,/pat2/ 第一个正则表达式和第二个正则表达式之间的行
#,/pat/ 从#号行为开始找到pat为止
/pat/,# 找到#号个pat为止
步进~
1~2 奇数行
2~2 偶数行
sed -n 'n;p' 打印偶数行
sed -n 'p;n' 打印奇数行
sed不加-n会再打印一遍:
[root@localhost sy]# seq 10|sed 'p'
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
[root@localhost sy]# seq 10|sed -n 'p'
1
2
3
4
5
6
7
8
9
10
[root@localhost sy]#
4.搜索替代
s/旧字符/新字符/修饰符 查找替换,支持使用其它分隔符,可以是其它形式如
s@@@或者s###
替换修饰符:
g 行内全局替换
p 显示替换成功的行
w /PATH/FILE 将替换成功的行保存至文件中
I,i 忽略大小写
5.分组后向引用
第一个(123)对应\1
第二个(abc)对应\2
第三个(xyz)对应\3
1.提取版本号:
[root@localhost ~]# cat nm|sed -nr 's/.*-(.*).jar/\1/p'
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5
[root@localhost ~]# cat nm
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar
2.提取IP地址
[root@localhost ~]# ifconfig ens33|sed -nr 's/.*inet (.*) netmask.*/\1/p'
172.16.114.10
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.16.114.10 netmask 255.255.255.0 broadcast 172.16.114.255inet6 fe80::20c:29ff:fe5b:b87a prefixlen 64 scopeid 0x20<link>ether 00:0c:29:5b:b8:7a txqueuelen 1000 (Ethernet)RX packets 69808 bytes 47124205 (44.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 59903 bytes 45306327 (43.2 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost ~]#
3.提取数字权限
[root@localhost ~]# stat nm|sed -nr '4s/.*([0-7]{4}).*/\1/p'
0644
[root@localhost ~]# stat nm文件:"nm"大小:257 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:100793031 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-11-28 18:39:47.041303261 +0800
最近更改:2023-11-28 18:38:29.647928413 +0800
最近改动:2023-11-28 18:38:29.647928413 +0800
创建时间:-
[root@localhost ~]#
6.变量
[root@localhost ~]# name=root
[root@localhost ~]# sed -nr '/$name/p' /etc/passwd
[root@localhost ~]# head -n2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# sed -nr "/$name/p" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# sed -nr '/'$name'/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
二、免交互
1.多行重定向
eof开始(小写大写都可以)
eof结束(小写大写都可以)
[root@localhost ~]# cat <<eof
> sdk
> sdmpsvo
> sdvlm
> eof
sdk
sdmpsvo
sdvlm
[root@localhost ~]#
[root@localhost ~]# cat >123 <<EOF
> kdsvn
> fdlm
> fmdk
> ddmfkv
> EOF
[root@localhost ~]# cat 123
kdsvn
fdlm
fmdk
ddmfkv
[root@localhost ~]#
[root@localhost ~]# tee /opt/mysql.repo <<eof
> [al]
> name=al
> baseurl=file:///mnt
> gpgcheck 0
> eof
[al]
name=al
baseurl=file:///mnt
gpgcheck 0
[root@localhost ~]# cat /opt/mysql.repo
[al]
name=al
baseurl=file:///mnt
gpgcheck 0
[root@localhost ~]#
2.免交互脚本
1.expect 在/usr/bin/expect
#!/usr/bin/expect
2.spawn (开启免交互)[命令]
expect 捕捉屏幕上的关键字
exp_continue 继续捕捉屏幕上的字
send 发送指令
interact 代表退出expect 会留在新的终端
expect eof 代表结束
[root@localhost ~]# vim jc
[root@localhost ~]# chmod +x jc
[root@localhost ~]# ./jc
spawn ssh 172.16.114.20
root@172.16.114.20's password:
Last login: Tue Nov 28 19:39:01 2023 from 172.16.114.10
[root@localhost ~]# exit
登出
Connection to 172.16.114.20 closed.
#!/usr/bin/expect
spawn ssh 172.16.114.20
expect {"yes/no" { send "yes\n";exp_continue }"password" { send "123\n" }
}
interact
总结:本章主要介绍了seq和免交互的用法及相关知识
相关文章:

sed命令
目录 一、sed 1.sed命令选项 2.语法选项 3.sed脚本格式 4.搜索替代 5.分组后向引用 1.提取版本号: 2.提取IP地址 3.提取数字权限 6.变量 二、免交互 1.多行重定向 2.免交互脚本 总结:本章主要介绍了seq和免交互的用法及相关知识 一、sed s…...

【经验分享】开发问题记录总结(持续更新)
目录 工具开发 界面类继承某自定义界面类时,出现布局混乱或者所有控件集中在左上角? 在继承自定义界面之后,以诸如 on_xxx_clicked() 模式设计的槽函数失效了? 使用pugi接口取出文本数据后,为什么该变量无法进行字符串比较&…...
MySQL导出数据库中每个表前 3000 条数据
以下是一个 Bash 脚本,它会连接到 MySQL 数据库,获取所有表名,并对每个表导出前 3000 条数据: #!/bin/bashUSERNAME"citycard" PASSWORD"密码" DATABASE"citycard" LIMIT3000# 导出数据库结构 mys…...
Spring事件注解@EventListener【观察】
一、背景 在开发工作中,我们常常会遇到这样一种情况:完成一项任务后,需要向其他模块广播消息或通知,以触发其他事件的处理。逐个发送请求固然可行,但更好的方式是采用事件监听,它是设计模式中的发布-订阅模…...
玩转Spring中强大的spel表达式!
玩转Spring中强大的spel表达式!值得推荐的好文:https://zhuanlan.zhihu.com/p/174786047...
HTTPS攻击原理 被攻击该如何防护
简单来说,HTTPS HTTP SSL/TLS。 在 HTTP 协议中,客户端通过网络传输消息与服务器进行通信。但该消息采用明文的原始格式。坏人(攻击者)很容易窃听消息。这就是我们需要 SSL/TLS 的原因。 HTTPS是一种安全的HTTP协议,…...
【.NET Core】委托(Delegate)应用详解
【.NET Core】委托(Delegate)应用详解 文章目录 【.NET Core】委托(Delegate)应用详解一、概述二、委托(Delegate)定义三、基础委托(Delegate) - 无返回值委托四、基础委托(Delegate) - 有返回值委托五、Mu…...

【LeetCode:1457. 二叉树中的伪回文路径 | 二叉树 + DFS +回文数】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...

《golang设计模式》第三部分·行为型模式-06-备忘录模式(Memento)
文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 备忘录(Memento)用于在不破坏目标对象封装特性的基础上,将目标对象内部的状态存储到外部对象中,以备之后恢复状态时使用。 1.1 角色 Originato…...

Cache学习(4):Cache分配策略Cache更新策略Cache逐出策略
Cache的数据流 常用名词 Allocation 分配Eviction 驱逐分配策略和更新策略分别为当产生Cache miss和Cache hit的时候数据流的具体行为 1 Cache分配策略(Cache Allocation Policy) Cache的分配策略是指不同情况下为数据分配Cache Line的不同行为。Cac…...
角色管理--产品经理岗
研发组织管理--角色管理--产品经理岗 定位 相对稳定和简单产品的独立产品打造者,复杂产品的辅助者 所需资质 校招新人,拥有灵性拥有基础的产品力(认知,设计,创新,推进,学习)Axur…...
SQL数据迁移实战:从产品层级信息到AB测试表
文章目录 创建表插入数据清空数据表数据迁移和筛选查询数据结论 创建表 首先,代码中定义了两个表格:dim_prod_hierarchy_info 和 app_abtest_product_info,都位于 test 数据库中。 dim_prod_hierarchy_info 表用于存储产品层级信息…...
VMware系列:VMware安装Android虚拟机
VMware系列:VMware安装Android虚拟机 一. 下载镜像这里提供了三种下载镜像方式,也就是三个下载链接,这里推荐百度网盘下载二. 使用VMware Workstation Pro 创建新的虚拟机操作系统应该可以选择任意一个,笔者只试过下图中,如果读者感兴趣可以多试几个,但笔者不保证每个都可…...

链接1:编译器驱动程序
文章目录 GNU编译器示例编译 GNU编译器 GNU编译器(GNU Compiler)是由自由软件基金会(Free Software Foundation,FSF)开发和维护的一套编译器集合。这些编译器主要用于编译各种编程语言的源代码,将其转换为…...

经典滑动窗口试题(二)
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、水果成篮1、题目讲解2、讲解算法思路3、代码实现 二、找到字符串中所有字母异位词1、题目…...

easyexcel指定sheet页动态给行列加背景色
需求 1、easyexcel,有多个sheet页,某些sheet页的行、列动态需要加背景色。 2、扩展支持cellStyle标记单元格超过64000 import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.write.handler.…...
设计模式在实际业务中应用 - 模版方法
1. 业务背景 作者在工作中主要主导 A 业务线的系统建设,A 业务线主要是零售场景酒水的售卖与即时配送服务。为了方便运营在自研系统中对多平台商品进行管理而开发的三方平台商品管理功能,本次介绍的模版方法模式则是在该功能开发过程中的落地实践。 2.…...

BGP综合实验
任务如下: 1.AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告 AS3存在两个环回,一个地址为192.168.2.0/24该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯 2.整个AS2的IP地址为172.16.0.0/16&…...

Global Surface Summary of the Day 全球逐日气象站点数据 GSOD数据集
数据名称 Global Surface Summary of the Day 数据内容 数据包含以下气象要素的日值观测数据: 气压:平均气压、海平面气压;气温:平均气温、日最高气温、日最低气温;湿度:露点温度(需自行换算…...

Harmony OS4开发入门
代码地址: https://gitee.com/BruceLeeAdmin/harmonyos/tree/master 项目目录介绍 ArkTS介绍 简单案例: State times: number 0/*数据类型:stringnumberany: 不确定类型,可以是任意类型*/State msg: string "hello"…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...