Linux - 文件管理高级2

3.处理字符 sed

① sed 默认情况下不会修改原文件内容

② sed 是一种非交互式的编辑器

3.1 工作原理

将原文件一行一行的进行处理,取出一行,放入“模式空间进行处理”,处理完成之后将结果输出到屏幕上,然后读取下一行,重复处理操作,直到所有行都读取处理完毕。

==> 因此,当sed处理字符时,不添加任何选项和条件,则会将原文件内容,完整输出到屏幕中。

 例:sed ' ' /etc/group 会将/etc/group 全部输出一遍

3.2 用法

sed [选项] '模式 动作' 文件...
选项:相当对整个字符处理定大基调 

-n :静默,关闭模式空间的输出,不会将未匹配到的行进行输出;

-e :允许进行多项编辑,在一个sed语句中,进行多次处理;

写法1:     -e '动作1' -e '动作2'
写法2:    '动作1;动作2'

-f :后接sed脚本,指定执行的sed脚本(将模式动作写到文件中)

-r :允许使用拓展正则

-i :直接作用到文件,没有输出,欲使用时先不加-i看一下输出效果

-i.bak :修改原文件之前进行备份

模式:相当于对原文件匹配范围

1.空模式:表示所有的行都执行

2.以行号作为模式:

2.1> 单独行

2.2> 起始行,结束行

2.3> 起始行~步长

2.4> 起始行+N

3.以正则过滤作为表达式,

3.1> /正则表达式/

3.2> /正则表达式1/,/正则表达式2/       

==> 表示从匹配到正则表达式1开始,到匹配到正则表达式2之间的所有行

例如:/^root/,/sync$/

动作:对模式匹配到的行进行操作

d :删除

p :打印

r : 读取

w:写入

a :追加        // 在匹配到的下一行追加

i :插入        // 在匹配到的上一行插入

c :修改        // 整行替换

y :转换的命令        // 一 一 对应的转换,类似tr

sed '1 y/HAPY/hapy/' 6.1.txt        ==> 将文件6.1.txt 中第1行的所有HAPY 转换为 hapy

n :处理下一行

s :替换查找

用法:        ' 模式  s/[旧的内容(正则表达式)]/[替换的内容]/[修饰符]'

修饰符:        g 全局替换        p 打印        w 把处理过的行写入到文件中


示例1:

打印出/etc/passwd文件中的第5行

分析:首先静默其它输出 -n        行号模式 5         动作 p 打印

sed -n '5 p' /etc/passwd


示例2:

只打印/etc/passwd 文件的第5行和第10行

分析: 用选项-n 静默其他输出,用;(或者-e)进行多次打印p操作

sed -n '5 p; 10 p' /etc/passwd


示例3:

在/etc/passwd下,从以root开头的行,到以login结尾的行,将sbin替换为bin 

分析:范围替换用正则表达式进行匹配,s///进行替换,p将替换的行打印出

sed  -n '/^root/,/login$/ s/sbin/bin/gp'


 示例4:

cp /etc/group /opt       

修改 /opt/group  文件,将文件的所有小写替换为大写

分析:s/[a-z]/\u&/g         ==>        将所有的小写替换为大写,g全局替换

                   -i                  ==>        修改文件内容,直接作用到文件

sed -i 's/[a-z]/\u&/g' /opt/group


把文件的小写字母替换为大写字母?  固定写法

s/[a-z]/\u&/g

把文件的大写字母替换为小写字母? 固定写法

 s/[A-Z]/\l&/g  

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

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

相关文章

智慧启航 网联无限丨2024高通汽车技术与合作峰会美格智能分论坛隆重举行

5月30日下午,以“智慧启航 网联无限”为主题的2024高通汽车技术与合作峰会&美格智能分论坛在无锡国际会议中心隆重举行,本次论坛由高通技术公司与美格智能技术股份有限公司共同主办,上海市车联网协会、江苏省智能网联汽车产业创新联盟、江…

一键分割视频并生成M3U8格式:高效管理视频内容,畅享流畅播放新体验

视频内容已成为我们日常生活和工作中的重要组成部分。无论是个人分享生活点滴,还是企业宣传产品与服务,视频都以其直观、生动的形式,吸引着我们的眼球。然而,随着视频内容的不断增多,如何高效、便捷地管理这些视频&…

如何让Google收录网站?

Google收录网站的前提条件是确保网站可以公开访问,并且页面加载速度需要快,这样Google爬虫才可以访问到你的网站,并且索引你网站中的内容。实现了上面的前提条件,可以通过优化数据结构、创建站点地图、使用Google Search Console、…

【机器学习】智能选择的艺术:决策树在机器学习中的深度剖析

在机器学习的分类和回归问题中,决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现,以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 🚀时空传送门 &#x…

JS脚本打包成一个 Chrome 扩展(CRX 插件)

受这篇博客 如何把CSDN的文章导出为PDF_csdn文章怎么导出-CSDN博客 启发,将 JavaScript 代码打包成一个 Chrome 扩展(CRX 插件)。 步骤: 1.创建必要的文件结构和文件: manifest.jsonbackground.jscontent.js 2.编写…

ArcGIS教程(05):计算服务区和创建 OD 成本矩阵

准备视图 启动【ArcMap】->双击打开【Exercise05.mxd】->启用【Network Analyst 扩展模块】。前面的文章已经讲过,这里不再赘述。 创建服务区分析图层 1、在 Network Analyst 工具栏上,单击 【Network Analyst】,然后单击【新建服务…

解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的

昨天晚上一个站长求助明月,说是安装 WP Super Cache 插件的时候提示 advanced-cache.php 被占用了,无法完成安装,收到截图看了才明白原来提示的是“advanced-cache.php 文件,由另一个插件或者系统管理员创建的”,如下图…

社交媒体数据恢复:QQ空间

本教程将指导您如何恢复QQ空间中的说说、日志和照片等内容。请注意,本教程不涉及推荐任何数据恢复软件。 一、恢复QQ空间说说 登录您的QQ账号,并进入QQ空间。点击“日志”选项,进入空间日志页面。在空间日志页面,您会看到一个“…

数据库(12)——DQL聚合查询

常见的聚合函数 将一列数据作为一个整体,进行纵向计算。 函数功能count统计数量max最大值min最小值avg平均值sum求和 语法 SELECT 聚合函数 (字段列表)FROM 表名; 示例 这是我们的原始表: 求人物总数 select count(id) from in…

“开源与闭源:AI大模型发展的未来之路“

文章目录 每日一句正能量前言数据隐私开源大模型与数据隐私闭源大模型与数据隐私数据隐私保护的共同考虑结论 商业应用开源大模型的商业应用优势:开源大模型的商业应用劣势:闭源大模型的商业应用优势:闭源大模型的商业应用劣势:商…

Navicat使用ssh隧道连接mysql数据库

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139352748 文章目录 前言新建连接MySql,填写ssh隧道信息方式1:使用密码方式连接方式二:使用密钥方式连接 填写常规信息总结 前言 使用ssh隧道连接数据库,方便本机…

2024抖音流量认知课:掌握流量底层逻辑,明白应该选择什么赛道 (43节课)

课程下载:https://download.csdn.net/download/m0_66047725/89360865 更多资源下载:关注我。 课程目录 01序言:拍前请看.mp4 02抖音建模逻辑1.mp4 03抖音标签逻辑2.mp4 04抖音推流逻辑3.mp4 05抖音起号逻辑4.mp4 06养号的意义.mp4 0…

【经典排序算法】堆排序(精简版)

什么是堆排序: 堆排序(Heapsort)是指利用堆(完全二叉树)这种数据结构所设计的一种排序算法,它是选择排序的一种。需要注意的是排升序要建大堆,排降序建小堆。 堆排序排序的特性总结: 1. 堆排序使用堆来选数…

flink left join消费kafka数据

left join会产生回车流数据 在控制台数据 import com.sjfood.sjfood.gmallrealtime.app.BaseSQLAPP; import com.sjfood.sjfood.gmallrealtime.util.SQLUtil; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.…

电脑设置密码怎么设置?让你的电脑更安全!

在如今信息化的社会中,保护个人电脑的安全至关重要。设置密码是最基本的电脑安全措施之一,它可以有效防止未经授权的访问和保护个人隐私,可是电脑设置密码怎么设置?本文将介绍三种设置电脑密码的方法,帮助您加强电脑的…

法线方程实现最小二乘拟合(Matlab)

一、问题描述 利用法线方程实现最小二乘拟合。 二、实验目的 掌握法线方程方法的原理,能够利用法线方程完成去一组离散数据点的拟合。 三、实验内容及要求 对于下面的不一致系统,构造法线方程,计算最小二乘以及2-范数误差。 [ 3 − 1 2 …

Nginx实战:LUA脚本_环境配置安装

目录 一、什么是LUA脚本 二、Nginx中的LUA脚本 1、主要特点 2、用途 三、如何在nginx中使用LUA脚本 1、原生nginx 2、OpenResty 3、nginx lua配置验证 一、什么是LUA脚本 Nginx Lua 脚本是 Nginx 与 Lua 语言集成的结果,它允许你使用 Lua 语言编写Nginx 模块…

(深度学习记录)第TR3周:Transformer 算法详解

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文本的输入处理中,transformer会将输入文本序列的每个词转化为一个词向量,我们通常会选择一个合适的长度作为输入…

若依分页问题排查

无限分页数据返回 一、问题排查1.1 代码排查1.2 sql排查1.3 原因分析 二、问题修复 项目使用了 若依的框架,前端反馈了一个问题,总记录条数只有 48条的情况下,传入的 页数时从6~~无穷大,每页大小为10, 此时还能返回数据&#xff0…