Linux - 文件管理高级 sed

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/bicheng/20360.shtml

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

相关文章

彭涛 | 2024年5月小结

5月份还是蛮有刺激的,做了蛮多的事情,但是没赚到钱,真是一屯操作猛如虎,一看账户0.5。 就喜欢创业这种一天天累死累活还不赚钱的感觉,哈哈哈哈 老规矩简单说下这个月的情况,如果对你有收获就最好了。 游学丹…

测绘外业需要注意些什么?

在进行测绘外业时,需要注意的事项涉及多个方面,包括充分的准备工作、合理的设备选择、精确的操作技巧以及细致的数据处理。下面将具体展开这些要点: 1. 充分准备 - 了解任务要求:在开始外业工作前,需要明确测绘的目…

VUE框架前置知识总结

一、前言 在学习vue框架中,总是有些知识不是很熟悉,又不想系统的学习JS,因为学习成本太大了,所以用到什么知识就学习什么知识。此文档就用于记录零散的知识点。主要是还是针对与ES6规范的JS知识点。 以下实验环境都是在windows环…

头歌页面置换算法第2关:计算OPT算法缺页率

2 任务:OPT算法 2.1 任务描述 设计OPT页面置换算法模拟程序:从键盘输入访问串。计算OPT算法在不同内存页框数时的缺页数和缺页率。要求程序模拟驻留集变化过程,即能模拟页框装入与释放过程。 2.2任务要求 输入串长度作为总页框数目,补充程序完成OPT算法。 2.3算法思路 OPT算…

【Tlias智能学习辅助系统】04 部门管理 删除 和 新增

Tlias智能学习辅助系统 04 部门管理 删除 和 新增 删除部门APIDeptController.javaDeptService.javaDeptServiceImpl.javaDeptMapper.java前端联调 新增部门API有一步简化DeptController.javaDeptService.javaDeptServiceImpl.javaDeptMapper.java前端联调 删除部门API 请求路径…

31-ESP32-S3-WIFI篇-02 Event Group (事件标记组)

ESP32-S3-WIFI 事件标记组 介绍 在ESP32-S3的WiFi驱动程序中,事件标记组(Event Group)是一个非常重要的概念。它是FreeRTOS中的一种同步机制,用于在任务之间传递和同步事件。在WiFi驱动程序中,我们使用事件标记组来通…

Go 语言字符串及 strings 和 strconv 包

在 Go 语言编程中,字符串是最基本、最常用的数据类型之一。无论是处理用户输入、读取文件内容,还是生成输出,字符串操作无处不在。为了方便开发者对字符串进行各种操作,Go 语言提供了强大的 strings 包和 strconv 包。strings 包包…

Selenium+Java 环境搭建

selenium 介绍 Selenium 是 web 应用中基于 UI 的自动化测试框架,支持多平台、多浏览器、多语言。 早期的 selenium RC 已经被现在的 webDriver 所替代,可以简单的理解为selenium1.0webdriver 构成 现在的 Selenium2.0 。现在我们说起 selenium &#xf…

适合学生写作业的台灯有哪些?台灯怎么选详细攻略!

在数字化飞速发展的今天,孩子们的学习和生活越来越离不开电子屏幕。然而,长时间盯着屏幕,不仅容易让眼睛感到疲劳,更是近视问题日益严重的元凶之一。每一位家长都希望孩子能拥有健康的视力,因此会为孩子挑选一台护眼灯…

MySQL十部曲之九:MySQL优化理论

文章目录 前言概述查询优化查询执行计划EXPLAIN获取表结构信息获取执行计划信息 EXPLAIN 输出格式如何使用EXPLAIN进行优化 范围访问优化单列索引的范围访问多列索引的范围访问 索引合并优化索引合并交叉访问算法索引合并联合访问算法索引合并排序联合访问算法 索引下推优化连接…

豆包浏览器插件会造成code标签内容无法正常显示

启用状态:页面的代码会显示不正常 禁用后,正常显示 害得我重置浏览器设置,一个个测试

spring mvc 中怎样定位到请求调用的controller

前言 在java web开发过程中,正常情况下controller都是我们自己写的,我们可以很方便的定位到controller的位置。但是有些时候我们引入的其他依赖中可能也有controller,为了找到并方便的调试jar包中的controller,我们一般会进行全局…

golang中移除切片索引位置的元素

golang中移除切片索引位置的元素 方法 1:使用 append func PopSliceElementByIndex(slice []int, index int) (res []int) {res append(slice[:index], slice[index1:]...)return }优点: 简单易读: 使用 append 函数,代码简洁…

Kotlin 密封类和接口

文章目录 定义实例化对象when 分支判定 定义 密封类和接口使用sealed修饰。 密封类和接口与其直接子类只能位于同一包内(一般是同一文件夹中,也可以是不同文件夹,package声明为同样的包名): sealed class Route(val…

杂项——32舵机控制

180度舵机内部有一个基准电路,产生周期为20ms,高电平宽度为1.5ms的基准信号,这个位置其实是舵机转角的中间位置。通过比较信号线的PWM信号与基准信号,内部的电机控制板得出一个电压差值,将这个差值加到电机上控制舵机转…

头歌页面置换算法第4关:计算CLOCK算法缺页率

2 任务:CLOCK算法 2.1 任务描述 设计CLOCK页面置换算法模拟程序:从键盘输入访问串。计算CLOCK算法在不同内存页框数时的缺页数和缺页率。要求程序模拟驻留集变化过程,即能模拟页框装入与释放过程。 2.2任务要求 输入串长度作为总页框数目,补充程序完成CLOCK算法。 2.3算法思…

[机缘参悟-196] - 《道家-水木然人间清醒1》读书笔记 -20-主要内容与核心理念

目录 前言: 一、主要内容 1.1 第一章 真相本质 1. 底层逻辑 2. 人生曲线 3. 价值规律 4. 底层规律 1.2 第二章 认知觉醒 1. 认知要素 2. 幸存者偏差 3. 借假修真 4. 两套秩序 1.3 第三章 关系界限 1. 内 观 2. 独 立 3. 真 爱 1.4 第四章 商业逻辑…

【CPP】双端队列简介(deque)

简介:双端队列(deque) 目录 1.概述2.特点3.底层原理 1.概述 双端队列:是一种顺序表和顺序表的结合数据结构,不是队列。 它提供顺序表的[]下标访问和链表的中间头部的较高效率插入删除操作。 2.特点 顺序表的优缺点: 优点&…

linux之docker- image.tar 的导出和导入

一、情况 docker 镜像有时无法从外网访问,需要把docker 打包导出到本地,然后以文件的形式,发送给其他人,再然后其他人把docker 镜像文件导入到自己的服务器本地镜像仓库,方可使用。也可把镜像上传到公司内网。下面就开…

ython 2.7 环境配置:深度探索与高效实践

Python 2.7 环境配置:深度探索与高效实践 在数字化时代的浪潮中,Python作为一种强大而灵活的编程语言,深受开发者们的喜爱。尽管Python 3版本已逐渐成为主流,但Python 2.7依然在某些特定领域和场景中发挥着不可替代的作用。本文将…