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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67) 大家好&#xff0c;小辰今天给大家介绍一个智慧园区管理系统&#xff0c;演示视频公众号&#xff08;小辰哥的Java&#xff09;对号查询观看即可 文章目录 Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)难度…

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析 文章目录 【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析前言PM定位模块损失函数FM聚焦模块损失函数总结 前言 在详细解析PFNet代码之前&#xff0c;首要任务是成功运行PF…

压缩包文件丢失?4个正确找回方法分享!

“我有一个很重要的压缩包保存在电脑上&#xff0c;但是不知道为什么里面有些文件丢失了。有什么方法可以快速找回压缩文件&#xff1f;请大家给我支支招吧&#xff01;” 如果我们的文件太多&#xff0c;将它们放在压缩包中不仅能让文件更有序&#xff0c;还能更合理的节省电脑…

LD_PRELOAD劫持

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

tp8 使用rabbitMQ(3)发布/订阅

发布/订阅 当我们想把一个消息&#xff0c;发送给 多个消费者的时候&#xff0c;我们把这种模式叫做发布/订阅模式&#xff0c;比如我们做两个消费者&#xff0c;其中一个消费者把消息写入磁盘中&#xff0c;别一个消费者把消息结果输出到屏幕上&#xff0c;就要用到发布订阅模…

产品化和商品化

我们经常会在IT产业听过以下岗位&#xff1a; 1、产品序列&#xff1a;产品行销经理 2、产品序列&#xff1a;产品经理、需求分析师、产品详细设计工程师、UIUE设计师 3、产品序列&#xff1a;业务架构师、应用架构师、数据架构师、技术架构师 4、研发序列&#xff1a;创新原型…

Java 图片验证码需求分析

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 图片验证码 需求分析 连续因输错密码而登录失败时&#xff0c;记录其连续输错密码的累加次数&#xff1b;若在次数小于5时&#xff0c;用户输入正确的密码并成功登录…

前K个高频单词(Java详解)

一、题目描述 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c; 按字典顺序 排序。 示例1&#xff1a; 输入: words ["i", "love&…

浅谈硬件连通性测试几大优势

硬件连通性测试是确保硬件系统正常运行、提高系统可靠性和降低生产成本的关键步骤。在现代工程和制造中&#xff0c;将连通性测试纳入生产流程是一个明智的选择&#xff0c;有助于确保硬件产品的质量和性能达到最优水平。本文将介绍硬件连通性测试的主要优势有哪些! 一、提高系…

游戏测试和软件测试有什么区别

针对手游而言&#xff0c;游戏测试的本质是APP&#xff0c;所以不少手游的测试方式与APP测试异曲同工&#xff0c;然而也有所不同。APP更多的是具有一种工具&#xff0c;一款APP好不好用不重要&#xff0c;关键点在于实用。而游戏则具有一种玩具属性&#xff0c;它并不见得实用…

基于Python+requests编写的自动化测试项目-实现流程化的接口串联

框架产生目的&#xff1a;公司走的是敏捷开发模式&#xff0c;编写这种框架是为了能够满足当前这种发展模式&#xff0c;用于前后端联调之前&#xff08;后端开发完接口&#xff0c;前端还没有将业务处理完毕的时候&#xff09;以及日后回归阶段&#xff0c;方便为自己腾出学(m…

图像异常检测研究现状综述

论文标题&#xff1a;图像异常检测研究现状综述 作者&#xff1a;吕承侃 1, 2 沈 飞 1, 2, 3 张正涛 1, 2, 3 张 峰 1, 2, 3 发表日期&#xff1a;2022年6月 阅读日期 &#xff1a;2023年11月28 研究背景&#xff1a; 图像异常检测是计算机视觉领域的一个热门研究课题, 其目…

leetCode 39.组合总和 + 回溯算法 + 剪枝 + 图解 + 笔记

39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合 can…

2015年五一杯数学建模A题不确定性条件下的最优路径问题解题全过程文档及程序

2015年五一杯数学建模 A题 不确定性条件下的最优路径问题 原题再现 目前&#xff0c;交通拥挤和事故正越来越严重的困扰着城市交通。随着我国交通运输事业的迅速发展&#xff0c;交通“拥塞”已经成为很多城市的“痼疾”。在复杂的交通环境下&#xff0c;如何寻找一条可靠、快…

HarmonyOS 数据持久化 Preferences 如何在页面中对数据进行读写

背景介绍 最近在了解并跟着官方文档尝试做一个鸿蒙app 小demo的过程中对在app中保存数据遇到些问题 特此记录下来 这里的数据持久化以 Preferences为例子展开 废话不多说 这里直接上节目(官方提供的文档示例:) 以Stage模型为例 1.明确preferences的类型 import data_prefer…

印刷企业建设数字工厂管理系统的工作内容有哪些

随着科技的不断进步&#xff0c;数字工厂管理系统在印刷企业中的应用越来越广泛。这种系统可以有效地整合企业内外资源&#xff0c;提高生产效率&#xff0c;降低生产成本&#xff0c;并为印刷企业提供更好的业务运营与管理模式。本文将从以下几个方面探讨印刷企业建设数字工厂…

如何用postman实现接口自动化测试

postman使用 开发中经常用postman来测试接口&#xff0c;一个简单的注册接口用postman测试&#xff1a; 接口正常工作只是最基本的要求&#xff0c;经常要评估接口性能&#xff0c;进行压力测试。 postman进行简单压力测试 下面是压测数据源&#xff0c;支持json和csv两个格…

Kibana部署

服务器 安装软件主机名IP地址系统版本配置KibanaElk10.3.145.14centos7.5.18042核4G软件版本&#xff1a;nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz 1. 安装配置Kibana &#xff08;1&#xff09;安装 [rootelk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C…

easyExcel 注解开发 快速以及简单上手 以及包含工具类

easyExcel 简单快速使用 1. mevan 这里版本我这里选的是 poi 4.1.2和 ali的easyexcel 的 3.3.1。 因为阿里easy是根据poi的依赖开发的有关系&#xff0c;两者需要对应要不然就会有很多bug和错误在运行时发生。需要版本对应&#xff0c;然而就是easy的代码也会有bug这个版本是比…

运动鞋品牌识别

一、前期工作 1. 设置GPU from tensorflow import keras from tensorflow.keras import layers,models import os, PIL, pathlib import matplotlib.pyplot as plt import tensorflow as tfgpus tf.config.list_physical_devices("GPU")if gpus:gpu0 …