sed文本 免交互
目录
什么是sed
概念
格式
基本用法
命令的选项
打印第三行
打印日志文件
打印奇数行
打印偶数行
第三行退出
删除第三行
sed在不打开文件的情况下修改文件内容
在后面添加 选项a
在字符中间添加 \n 实现追加换行
全部追加
在前面插入 选项i
替换 选项c
修改文件内容 -i 与 -i.bak
-i.bak
搜索替代 (修改文件之前 请先备份 尤其是配置文件)
更改配置文件
sed ’s/r..t/&er/‘ 文件名 &指代(在字符后添加字符)
sed引用变量
分组后项引用
实例:提权限
过滤出ip地址
免交互
多行重定向格式
统计行数
更改密码
编写yum仓库
expect
格式
expect 中的相关命令
远程拷贝
编辑
远程免交互创建用户
什么是sed
概念
Sed(Stream Editor)是一种用于处理文本流的命令行工具。它以行为单位处理文本,通过特定的规则进行匹配、替换、删除等操作。Sed的主要功能包括:
- 删除:可以删除行或者指定字符/字符串。
- 插入和追加:可以在指定位置插入或追加文本。
- 查找和替换:可以查找特定字符或字符串,并将其替换为指定内容。
- 分割和合并:可以将文本按照特定规则分割成多个部分,或者将多个部分合并成一个整体。
- 输出:可以将处理结果输出到标准输出或文件中。
Sed的语法相对简单,通常使用正则表达式作为匹配规则,以实现复杂的文本处理需求。它既可以单独使用,也可以与其他命令组合使用,灵活性强且效率高
sed 自己的语法
语法:输出哪些行,留下哪些
语法:范围 + 操作 打印屏幕上
处理文件的哪些行 (如:1-10 5-6)
格式
sed [option]... 'script;script;...' [input file...]
选项 自身脚本语法 支持标准输入管道
基本用法
sed ‘ ’ (自动打印功能)=cat的用法


命令的选项
sed
-n 关闭自动打印
-p 手动打印
-q 提前退出 (3q 第三行退出)
d 删除 (3d 删除第三行)
a 后面追加 (3a 第三行后面追加)
a [\]text 在指定行后面追加文本,支持使用\n实现多行追加
i 上面插入 3i 第三行上面添加
i [\]text 在行前面插入文本
c 替换 3c 将第三行 整行替换
c [\]text 替换行为单行或多行文本
-r 使用拓展正则
-i 实际修改文件的内容
-i.bak 实际修改前先备份 源文件 会产生一个 源文件 .bak的文件
语法字母 sed ' p' 打印
打印第三行

打印日志文件
[root@localhost/opt] # sed -n '/2:47/,/2:48/p' log

打印奇数行

打印偶数行

第三行退出

删除第三行

sed在不打开文件的情况下修改文件内容
在后面添加 选项a

在字符中间添加 \n 实现追加换行

全部追加

在前面插入 选项i

替换 选项c

修改文件内容 -i 与 -i.bak

-i.bak
[root@localhost/ooo] # cat 999.txt
1
2
3
4
5
6
7
8
9
[root@localhost/ooo] # sed -i.bak '2~2d' 999.txt
[root@localhost/ooo] # cat 999.txt
1
3
5
7
9
[root@localhost/ooo] # ls
0.txt 4 555 999.txt log xx1.d xx3.d xx5.d xx7.d xx9.d xx.log
1 5 666 999.txt.bak test xx2.d xx4.d xx6.d xx8.d xx.d
#又生成新文件.bak结尾
[root@localhost/ooo] # cat 999.txt.bak #查看为源文件
1
2
3
4
5
6
7
8
9


搜索替代 (修改文件之前 请先备份 尤其是配置文件)
范围 s/旧字符/新字符/修饰符 文件名
sed -i.bak 先备份

更改配置文件

sed ’s/r..t/&er/‘ 文件名 &指代(在字符后添加字符)
sed引用变量

分组后项引用
s /(1)(2)(3)\1\2\3/p
\1 第一个括号中的内容
实例:提权限

过滤出ip地址
[root@localhost/ooo] # ifconfig ens33|sed -nr '2p' #打印第二行inet 192.168.17.55 netmask 255.255.255.0 broadcast 192.168.17.255
[root@localhost/ooo] # ifconfig ens33|sed -nr '2s/.*inet (.*) netmask.*/\1/p'# .*inet 为一段 (.*)为一组 中间两个空格 netmask.*为一段 打印出一个分组
192.168.17.55

免交互
多行重定向格式
命令 << 标记
...
......
标记

统计行数
[root@localhost/ooo] # wc -l <<EOF
> dd
> dfdf
> EOF
2 #统计两行
更改密码
[root@localhost/ooo] # passwd xyc <<EOF
> 1234
> 1234
> EOF
更改用户 xyc 的密码 。
新的 密码:无效的密码: 密码少于 8 个字符
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
编写yum仓库
cat <<EOF >centos7.repo
expect
格式
expect [选项] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]
expect 中的相关命令
spawn 开启免交互 开启expect
expect 捕捉 屏幕上的 关键字
exp_continue 继续捕捉屏幕上的字
send 发送指令
interact 代表用于将交互权限交给用户进行操作。它主要用于退出自动化,进入人工交互
远程拷贝
#!/usr/bin/expect$
spawn scp /etc/fstab 192.168.17.25:/data$ #将fstab拷贝到192.168.17.25的data下
expect {$"yes/no" { send "yes\n";exp_continue }$"password" { send "123\n" }$
}$
expect eof$

远程免交互创建用户
#!/usr/bin/expect
spawn ssh 192.168.17.25
expect {"yes/no" { send "yes\n"; exp_continue }"password" { send "123\n";exp_continue }"#" { send "useradd lisi \n"}
}interact

相关文章:
sed文本 免交互
目录 什么是sed 概念 格式 基本用法 命令的选项 打印第三行 打印日志文件 打印奇数行 打印偶数行 第三行退出 删除第三行 sed在不打开文件的情况下修改文件内容 在后面添加 选项a 在字符中间添加 \n 实现追加换行 全部追加 在前面插入 选项i 替换 选项c …...
轻巧高效的剃须好工具,DOCO黑刃电动剃须刀上手
剃须刀大家都用过,我比较喜欢电动剃须刀,尤其是多刀头的悬浮剃须刀,感觉用起来很方便,剃须效率也很高。最近我在用一款DOCO小蔻的黑刃电动剃须刀,这款剃须刀轻巧易用,而且性价比超高。 相比于同类产品&…...
第15关 K8s HPA:自动水平伸缩Pod,实现弹性扩展和资源优化
------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维,这节课带来k8s的HPA 自动水平伸缩pod( 视频后面有彩蛋 : ) )。 我们知道,初始Pod的数量是可以设置的,同时业务也分流量高峰和低峰&a…...
接口测试工具(Jmeter)必学技巧
安装 使用JMeter的前提需要安装JDK,需要JDK1.7以上版本 目前在用的是JMeter5.2版本,大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin,双击jmeter.bat启动运行 启动后默认为英文版本,可通过Options – Choos…...
C++面试,说明const和#define的特点和区别
#define只是用来做文本替换的,例如: #define PI 3.1415926 float angel; angel 30 * PI /180; 当程序进行编译的时候。编译器会首先将"#define PI 3.1415926"以后所有代码中的PI都替换成3.1415926,然后进行编译。它的生命周期止…...
aikit 2023 3D与机械臂结合!
引言 今天我们主要了解3D摄像头是如何跟机械臂应用相结合的。我们最近准备推出一款新的机械臂套装AI Kit 2023 3D,熟悉我们的老用户应该知道,我们之前的AI Kit 2023套装使用的是2D摄像头。 随着技术进步,市场需求和领域的扩大,2D的…...
模拟退火算法应用——求解TSP问题
仅作自己学习使用 一、问题 旅行商问题(TSP) 是要求从一个城市出发,依次访问研究区所有的城市,并且只访问一次不能走回头路,最后回到起点,求一个使得总的周游路径最短的城市访问顺序。 采用模拟退火算法求解TSP问题&#x…...
【LeetCode】每日一题 2023_11_28 设计前中后队列(数组/链表/双端队列)
文章目录 刷题前唠嗑题目:设计前中后队列题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode?启动!!! 这道题的难度,才是我想象中的中等题的难度好吧,昨天那玩意对我来说还是太难了…...
python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统
在前文的项目开发实践中,我们已经以钢铁产业产品缺陷检测数据场景为基准,陆续开发构建了多款目标检测模型,感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否?基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统…...
力扣142. 环形链表 II
文章目录 力扣142. 环形链表 II示例代码实现总结收获 力扣142. 环形链表 II 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,…...
【设计模式-2.2】创建型——简单工厂和工厂模式
说明:本文介绍设计模式中,创建型设计模式中的工厂模式; 飞机大战 创建型设计模式,关注于对象的创建,本文介绍的简单工厂和工厂模式同样也是。举一个游戏例子,如飞机大战游戏中,屏幕中敌人类型…...
将文件读入C中的字符数组
当您使用 C 编程语言时,您可能会遇到一些需要将文件读入字符数组的问题,例如分析每个字符的频率,或者将所有句子的每个起始词从小写转换为大写,反之亦然。该解决方案非常简单,但对于不太了解文件读取或写入的人来说可能…...
不小心删除了短信,如何在 Android 上恢复已删除的短信
不小心删除了文字消息在 Android 手机上使用可能会是一种令人痛苦的体验。这些消息可能包含有价值的信息、珍贵的回忆或重要的细节。幸运的是,您可以探索多种方法来恢复这些丢失的消息。在本文中,我们将深入研究可用于检索已删除短信的选项,并…...
Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…...
springBoot的实现原理;SpringBoot是什么;使用SpringBoot的核心功能;springBoot核心注解以及核心配置文件
文章目录 springBootspringBoot的实现原理什么是 Spring Boot?SpringBoot是什么为什么要使用springBootSpring Boot的核心功能Spring Boot 主要有如下优点: SpringBoot启动过程-流程Spring Boot 的核心注解是哪个?什么是 JavaConfigÿ…...
logback-spring.xml详解
《springboot使用logback日志框架超详细教程》文中,filter中最重要的两个过滤器LevelFilter(日志级别精确匹配)、ThresholdFilter(阈值过滤) 的描述非常准确: springboot使用logback日志框架超详细教程_sp…...
【Python】nn.BCEWithLogitsLoss函数详解
nn.BCEWithLogitsLoss() 是 PyTorch 中一个用于二元分类问题的损失函数,它结合了 Sigmoid 层(将输出映射到 [0,1] 范围内)和 Binary Cross Entropy(BCE)损失。这可以避免在正向和反向传播过程中可能出现梯度爆炸或梯度…...
【C++】日期类的实现
在上篇博客中我们已经学习了C中的运算符重载,我们说,操作符只能对于内置类型进行操作,对自定义类型我们需要自己定义函数去实现一系列的操作 那么这篇博客我们就专门把日期这个类单独拿出来写一下它都有哪些有意义的可以重载的运算符…...
带残差连接的ResNet18
目录 1 模型构建 1.1 残差单元 1.2 残差网络的整体结构 2 没有残差连接的ResNet18 2.1 模型训练 2.2 模型评价 3 带残差连接的ResNet18 3.1 模型训练 3.2 模型评价 4 与高层API实现版本的对比实验 总结 残差网络(Residual Network,ResNet)…...
【深入解析git和gdb:版本控制与调试利器的终极指南】
【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用 1.1.背景 程序的发布方式有两种,debug模式和release模式release模式不可被调试,debug模式可被调试Linux gcc/g出来的二进制…...
越锻炼越痛竟是方法错了,颈椎病腰间盘突出不能盲目运动!科学防护与康复指南来了
很多人得知自己有颈椎病或腰椎间盘突出后,第一反应就是 "多运动锻炼",结果不仅没缓解症状,反而越练越痛,甚至导致病情加重。这是因为颈腰椎病患者的脊柱已经受损,错误的运动方式会进一步损伤椎间盘和神经&am…...
科哥Face Fusion镜像:UI界面自定义修改,实现边框特效的保姆级教程
科哥Face Fusion镜像:UI界面自定义修改,实现边框特效的保姆级教程 1. 从基础融合到创意特效的升级之路 如果你已经体验过科哥Face Fusion镜像的基础人脸融合功能,可能会好奇:这个强大的工具能否进一步个性化?比如为合…...
数据摄取构建模块简介(预览版)(一)刺
一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...
MINIO最新版RELEASE.2024-08-17T01-24-54Z-cpuv1部署全攻略:从Docker拉取到Rclone实战
MINIO最新版RELEASE.2024-08-17T01-24-54Z-cpuv1部署全攻略:从Docker拉取到Rclone实战 对象存储技术正在重塑现代数据架构,而MINIO作为高性能、开源的对象存储解决方案,凭借其轻量级特性和S3兼容性,成为开发者构建云原生存储的首选…...
如何用Bebas Neue免费开源字体打造专业级标题设计
如何用Bebas Neue免费开源字体打造专业级标题设计 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue 在当今数字设计领域,寻找既专业又免费的标题字体往往令人头疼。商业字体授权费用高昂,而…...
别再死磕A*了!用MATLAB从零实现RRT*路径规划(附完整代码与避坑指南)
从A到RRT:MATLAB实战高维空间路径规划全解析 当传统栅格搜索算法在机器人关节空间或复杂三维环境中捉襟见肘时,概率采样方法正成为新一代路径规划的核心利器。本文将带您深入理解RRT算法相对于A的突破性优势,并通过MATLAB完整实现过程&#…...
如何快速恢复损坏视频:开源修复工具UNTRUNC的完整指南
如何快速恢复损坏视频:开源修复工具UNTRUNC的完整指南 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 你是否曾…...
告别串口!用USB网卡+SCP给嵌入式设备传文件的保姆级教程(含Windows/Linux双平台配置)
嵌入式开发者的USB文件传输革命:双平台高效解决方案 每次调试嵌入式设备时,看着进度条在串口终端上缓慢爬行,那种等待的煎熬简直让人抓狂。作为一名长期奋战在工业现场的开发者,我深知传统串口传输在大文件场景下的无力感——一个…...
MDCSwipeToChoose快速入门:5步创建你的第一个滑动卡片应用
MDCSwipeToChoose快速入门:5步创建你的第一个滑动卡片应用 【免费下载链接】MDCSwipeToChoose Swipe to "like" or "dislike" any view, just like Tinder.app. Build a flashcard app, a photo viewer, and more, in minutes, not hours! 项…...
【国家级生态监测项目实录】:R语言建模结果突变73%偏差?根源竟是R_ENV变量污染!
第一章:【国家级生态监测项目实录】:R语言建模结果突变73%偏差?根源竟是R_ENV变量污染!在某国家级森林碳汇动态监测项目中,团队基于R 4.3.1构建的随机森林回归模型,在生产环境批量预测时突发异常——关键指…...

