Linux系统Shell脚本第六章:文件三剑客之sed

news2024/10/10 4:27:28

目录

一、文本三剑客之sed

1、基本用法

2、sed脚本语法及命令

 3、sed选项

4、sed的查找替换使用

5、后向引用

6、变量


一、文本三剑客之sed

1、基本用法

sed [选项]... '{自身脚本语法};....' [input file...]

举例:
seq 5 |sed       #生成1-5数字传给sed
#该格式报错,基本格式中的'{自身脚本语法}'不可以不写,可以写空则是默认打印全部内容如下
seq 5 | sed ''
1
2
3
4
5

2、sed脚本语法及命令

①sed脚本语法:地址+sed自己脚本命令,地址即范围例如全文或第一行,第一行至第三行等范围

②sed脚本命令:

p 将内容打印到屏幕,使用时关闭自动打印功能,-n选项

q 到指定的内容即退出,例如打印到第三行直接退出

 IP 内容忽略大小写,使用时关闭自动打印功能,-n选项

 d 删除指定内容

a 在指定位置添加内容

c 替换指定内容

~ 步进,0~2,2个间隔,1~2,1个间隔 seq 10 |sed -n '0~2p'每间隔2个打印一次

 3、sed选项

① -n 选项,sed默认有自动打印功能,-n选项是关闭打印功能,一般配合脚本命令p使用

②-r  选项,开启扩展正则表达式

③-i  选项,在文件中添加内容,可以在-i是加.bak后缀备份修改的文件。例如 sed -i.bak  a.txt会在同目录下生成一个a.txt.bak文件

4、sed的查找替换使用

格式:sed '/可使用正则表达式选择范围/'s/查找内容/替换内容/g g表示全文,固定格式的///可以用###等符号替换

注意:查找内容可使用正则表达式,替换内容不可使用正则表达式

举例1:
搜索/etc/passwd 中包含root字符的行
sed -nr '/root/p'   /etc/passwd  #-n关闭自动打印,-r启用扩展正则表达式查询root字符并打印
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin   #查询结果
举例2:
使用sed关闭selinux
cat /etc/selinux/config   #查看selinux配置文件内容
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
#-i选项备份selinux配置文件后缀加.bak,在config文件中找到SELINUX=enforcing修改为SELINUX=disabled,g表示所有搜索到的内容都替换。单引号中''s之前可加行号

5、后向引用

( )内的按顺序标为123 ,引用时\1调用第一个()的内容,\n表示调用第n个()的内容。

.*表示任意长度字符不管是什么字符

举例1:取ip地址
ifconfig ens33 |sed -nr 's/.*inet (.*) netmask.*/\1/p'
#查看ens33的网卡信息传给sed处理,-n选项关闭自动打印,-r选项开启扩展正则表达式
's///'查找替换标准格式,.*inet 表示以inet为止的前面所有字符 (.*) 括号表示使用反向引用
.*表示该处的任意字符 netmask.*表示以netmask开头后面的所有字符。\1表示反向引用第一个()的
内容,p表示打印出来
192.168.30.11  #打印结果
举例2:
echo abc123XYZ | sed -nr 's/(abc)(123)(XYZ)/\3\2\1/p'
#打印abc123XYZ传给sed处理变成XYZ123ABC,-n选项关闭自动打印,-r选项开启扩展正则表达式
's///'查找替换标准格式。三个()括起来的内容分别表示元素123,调用时改变调用顺序打印即可改变内容顺序
XYZ123abc       #打印结果

6、变量

使用sed查询是可以直接调用变量,注意必须用“ ”号或者俩个双引号,单引号不识别变量

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

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

相关文章

配置python虚拟环境配置【Pycharm为例】 2023年2月1日 14点43分

文章目录1. 新建一个项目2. 新建文件,创建项目3. 此时文件结构4. 安装环境样例5. 检查当前环境点击【解释器设置】点击同开头设置环境6. 开始安装根目录下有这个文件点击【终端】7. 激活虚拟环境7.1 如果出现以下错误([参考链接](https://blog.csdn.net/e5pool/arti…

大数据是干什么的,TOOM大数据舆情监测系统数据挖掘

舆情数据挖掘是指从大量的舆情数据中,通过使用数据挖掘、机器学习等技术,对舆情数据进行分析处理,提取有价值的信息,从而得到舆情分析结果。舆情数据挖掘的目的是了解舆论趋势、话题热点、网民情绪等,为决策提供数据支…

PowerBI实用技巧——利用DATEDIFF实现时间进度百分比

需求概述:根据系统默认时间当年1月~当年12月为一年(或指定财年)进行时间百分比进度展示。一、默认正常时间进度实现效果,例如现在系统是2023年2月1日,截止当前年时间已经过去了全年的8.49%.1.解决思路:首先…

【Faster R-CNN】之 backbone 代码精读

1、前言 在上一篇文章 【Faster R-CNN】之 Resize_and_Padding 代码精读 中,我们得到了图像尺寸统一的 batch 了,接下来,就是 feed 到 backbone 中 获取 feature map。 2、backbone 1)这里的 backbone 其实就是 迁移学习&#…

什么是数据治理?

我们这些搞数据治理的人,几乎每天都会说到“数据治理”这个词。但有很多人依然不清楚数据治理的确切含义,也搞不懂数据治理和数据管理的关系。这一节,我们就来认真辨析“数据治理”这个词。首先,我们来看一看国际数据管理协会DAMA…

C语言学习笔记-条件判断

C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 fals…

python基础学习2--模块、面向对象编程

一、模块 在python中,一个.py文件就称之为一个模块(module)。为了避免模块重名冲突,pyton又引入了按目录来组织模块的方法,成为包(package)。 比如mycompany,按照如下目录存放: 引入了包以后,只…

【JavaGuide面试总结】Spring篇·上

【JavaGuide面试总结】Spring篇上1.谈谈自己对于 Spring IoC 的了解2.什么是 Spring Bean?3.将一个类声明为 Bean 的注解有哪些?4.注入 Bean 的注解有哪些?5.Component 和 Bean 的区别是什么?6.Autowired 和 Resource 的区别是什么&#xff…

私服 Nexus

Sonatype公司的一款maven私服产品。 下载地址: https://help.sonatype.com/repomanager3/download 启动命令: nexus.exe /run nexus 访问服务器(默认端口:8081): http://localhost:8081 提示信息有密码所在…

【IoT】红外循迹避障小车

说明 随着生产自动化的发展需要,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的传感器种类也越来越多,其中红外传感器已经成为自动行走和驾驶的重要部件。 红外的典型应用领域为自主式智能导航系统&…

Unity开发入门吐血反思

年前Team Leader开会时曾说道,以后我们可能都要去参与Unity开发,当时我还兴致勃勃一连提了好几个问题,有没有领路人,文档是否充分等等,毕竟做Android之余多掌握门技术也不错,学到的就是赚到的,技…

倚天剑第一式——爬虫基础

博主简介:博主是一个大二学生,主攻人工智能领域研究。感谢缘分让我们在CSDN相遇,博主致力于在这里分享关于人工智能,C,python,爬虫等方面的知识分享。如果有需要的小伙伴,可以关注博主&#xff…

Docker部署ThingsBoard-Gateway ODBC数据上传(五)

目录 1、linux系统安装Docker 1.docker安装Python 2.安装ODBC包 2、docker安装运行tb-gateway 3、修改config配置文件 4、 安装ODBC驱动程序 5、重启docker 因为需要数据库ODBC数据上传,所以我选择单独部署在远程服务器的docker容器中。其原理大致是这样的&…

在中国市场,OATLY燕麦奶依靠什么成为“标杆品牌”?

在中国新茶饮赛道异常拥挤、新品类层出不穷的局面下,OATLY作为一个来自瑞典的品牌,仅用3年时间,不仅顺利通过国外食品饮料品牌进军中国市场九死一生的惨烈考验,而且凭借其主打产品燕麦奶,成功在中国市场缔造了一个全新…

CameraX + MLKit 打造超简单 OCR 方案

前言 疫情期间隔三差五就要做核酸,随时都要准备身份证给大白扫描识别。写一篇文章聊聊其中用到的技术吧,顺道缅怀这段难忘的经历,希望大家的生活彻底告别的疫情影响,早日回归正常! 身份证扫描主要用到是文字识别技术&…

Java程序设计实验3 | 面向对象(上)

*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 目录 一、实验…

2023软考软件设计师易混淆知识点~(5)

将2023上半年软考《软件设计师》易混淆知识点,分享给大家,快来跟着一起打卡学习吧!易混淆点4:软件维护类型1、更正性维护:针对真实存在并已经发生的错误进行的维护行为。2、预防性维护:针对真实存在但还未发生的错误进行的维护。3、适应性维护…

物联网毕业设计项目选题:harmonyos鸿蒙系统开发智能小车案例-hi3861v100开发板-留言领源码

华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统。开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,同时还配套丰富的拓展模块。开发板配套丰富的学习资料,包括全套开发教程…

洛谷 P2983 [USACO10FEB]Chocolate Buying S

这题其实不难&#xff0c;但时间复杂度是大难点 题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Store features N (1 < N < 100,000) kinds of chocolate in essentially unlimited quantities. Each type i o…

网络电缆有哪些类型,网络工程师必知!

在 21 世纪&#xff0c;理想的目标是完全消除网络电缆的使用&#xff0c;并生活在一个一切都以无线方式管理的世界中。没有电缆的困扰&#xff0c;管理服务器会容易得多&#xff0c;我们也不必浪费时间标记和跟踪数百条电缆。 在那个时候到来之前&#xff0c;我们一直坚持使用…