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

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的主要功能包括:

  1. 删除:可以删除行或者指定字符/字符串。
  2. 插入和追加:可以在指定位置插入或追加文本。
  3. 查找和替换:可以查找特定字符或字符串,并将其替换为指定内容。
  4. 分割和合并:可以将文本按照特定规则分割成多个部分,或者将多个部分合并成一个整体。
  5. 输出:可以将处理结果输出到标准输出或文件中。

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/‘  文件名     &指代(在字符后添加字符)  

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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黑刃电动剃须刀上手

剃须刀大家都用过&#xff0c;我比较喜欢电动剃须刀&#xff0c;尤其是多刀头的悬浮剃须刀&#xff0c;感觉用起来很方便&#xff0c;剃须效率也很高。最近我在用一款DOCO小蔻的黑刃电动剃须刀&#xff0c;这款剃须刀轻巧易用&#xff0c;而且性价比超高。 相比于同类产品&…...

第15关 K8s HPA:自动水平伸缩Pod,实现弹性扩展和资源优化

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维&#xff0c;这节课带来k8s的HPA 自动水平伸缩pod&#xff08; 视频后面有彩蛋 : ) &#xff09;。 我们知道&#xff0c;初始Pod的数量是可以设置的&#xff0c;同时业务也分流量高峰和低峰&a…...

接口测试工具(Jmeter)必学技巧

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本 目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Choos…...

C++面试,说明const和#define的特点和区别

#define只是用来做文本替换的&#xff0c;例如&#xff1a; #define PI 3.1415926 float angel; angel 30 * PI /180; 当程序进行编译的时候。编译器会首先将"#define PI 3.1415926"以后所有代码中的PI都替换成3.1415926&#xff0c;然后进行编译。它的生命周期止…...

aikit 2023 3D与机械臂结合!

引言 今天我们主要了解3D摄像头是如何跟机械臂应用相结合的。我们最近准备推出一款新的机械臂套装AI Kit 2023 3D&#xff0c;熟悉我们的老用户应该知道&#xff0c;我们之前的AI Kit 2023套装使用的是2D摄像头。 随着技术进步&#xff0c;市场需求和领域的扩大&#xff0c;2D的…...

模拟退火算法应用——求解TSP问题

仅作自己学习使用 一、问题 旅行商问题(TSP) 是要求从一个城市出发&#xff0c;依次访问研究区所有的城市&#xff0c;并且只访问一次不能走回头路&#xff0c;最后回到起点&#xff0c;求一个使得总的周游路径最短的城市访问顺序。 采用模拟退火算法求解TSP问题&#x…...

【LeetCode】每日一题 2023_11_28 设计前中后队列(数组/链表/双端队列)

文章目录 刷题前唠嗑题目&#xff1a;设计前中后队列题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 这道题的难度&#xff0c;才是我想象中的中等题的难度好吧&#xff0c;昨天那玩意对我来说还是太难了…...

python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中&#xff0c;我们已经以钢铁产业产品缺陷检测数据场景为基准&#xff0c;陆续开发构建了多款目标检测模型&#xff0c;感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否&#xff1f;基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…...

力扣142. 环形链表 II

文章目录 力扣142. 环形链表 II示例代码实现总结收获 力扣142. 环形链表 II 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c…...

【设计模式-2.2】创建型——简单工厂和工厂模式

说明&#xff1a;本文介绍设计模式中&#xff0c;创建型设计模式中的工厂模式&#xff1b; 飞机大战 创建型设计模式&#xff0c;关注于对象的创建&#xff0c;本文介绍的简单工厂和工厂模式同样也是。举一个游戏例子&#xff0c;如飞机大战游戏中&#xff0c;屏幕中敌人类型…...

将文件读入C中的字符数组

当您使用 C 编程语言时&#xff0c;您可能会遇到一些需要将文件读入字符数组的问题&#xff0c;例如分析每个字符的频率&#xff0c;或者将所有句子的每个起始词从小写转换为大写&#xff0c;反之亦然。该解决方案非常简单&#xff0c;但对于不太了解文件读取或写入的人来说可能…...

不小心删除了短信,如何在 Android 上恢复已删除的短信

不小心删除了文字消息在 Android 手机上使用可能会是一种令人痛苦的体验。这些消息可能包含有价值的信息、珍贵的回忆或重要的细节。幸运的是&#xff0c;您可以探索多种方法来恢复这些丢失的消息。在本文中&#xff0c;我们将深入研究可用于检索已删除短信的选项&#xff0c;并…...

Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…...

springBoot的实现原理;SpringBoot是什么;使用SpringBoot的核心功能;springBoot核心注解以及核心配置文件

文章目录 springBootspringBoot的实现原理什么是 Spring Boot&#xff1f;SpringBoot是什么为什么要使用springBootSpring Boot的核心功能Spring Boot 主要有如下优点&#xff1a; SpringBoot启动过程-流程Spring Boot 的核心注解是哪个&#xff1f;什么是 JavaConfig&#xff…...

logback-spring.xml详解

《springboot使用logback日志框架超详细教程》文中&#xff0c;filter中最重要的两个过滤器LevelFilter&#xff08;日志级别精确匹配&#xff09;、ThresholdFilter&#xff08;阈值过滤&#xff09; 的描述非常准确&#xff1a; springboot使用logback日志框架超详细教程_sp…...

【Python】nn.BCEWithLogitsLoss函数详解

nn.BCEWithLogitsLoss() 是 PyTorch 中一个用于二元分类问题的损失函数&#xff0c;它结合了 Sigmoid 层&#xff08;将输出映射到 [0,1] 范围内&#xff09;和 Binary Cross Entropy&#xff08;BCE&#xff09;损失。这可以避免在正向和反向传播过程中可能出现梯度爆炸或梯度…...

【C++】日期类的实现

在上篇博客中我们已经学习了C中的运算符重载&#xff0c;我们说&#xff0c;操作符只能对于内置类型进行操作&#xff0c;对自定义类型我们需要自己定义函数去实现一系列的操作 那么这篇博客我们就专门把日期这个类单独拿出来写一下它都有哪些有意义的可以重载的运算符&#xf…...

带残差连接的ResNet18

目录 1 模型构建 1.1 残差单元 1.2 残差网络的整体结构 2 没有残差连接的ResNet18 2.1 模型训练 2.2 模型评价 3 带残差连接的ResNet18 3.1 模型训练 3.2 模型评价 4 与高层API实现版本的对比实验 总结 残差网络&#xff08;Residual Network&#xff0c;ResNet&#xff09;…...

【深入解析git和gdb:版本控制与调试利器的终极指南】

【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用 1.1.背景 程序的发布方式有两种&#xff0c;debug模式和release模式release模式不可被调试&#xff0c;debug模式可被调试Linux gcc/g出来的二进制…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...