linux sed删除指定行_shell三剑客之sed!

0a13294eb36ef76e2a162be99f4028cb.png

背景

sed(Stream Editor 流编辑器),作为三剑客的一份子,主要的功能有增删改查。

为什么称之为“流”编辑器呢?

大家知道:在Linux文件系统中,一切都可以作为文件来处理。

比如:配置文件、设备文件、日志等等。

sed就类似于工厂流水线作业的车间一样,文件中的每行内容都是生产元件,经过sed车间流水线处理,最终会变成成品。

0a13294eb36ef76e2a162be99f4028cb.png

sed语法格式

同grep一样,sed提供两种方式:

◆ stdout | sed [option] “pattern command”

◆ sed [option] “pattern command” file

第一种是从文本中直接使用pattern匹配搜索

第二种是从标准输出中处理

fca0087afd8ad4d101b2305ba6ba5c52.png

选项

18cb6428c5d23b2ab283eb74c1ec7d77.png

pattern匹配模式

3b9e32e9f435742a52c17417f238bbbe.png

sed命令-增加&删除

7f2b7bde7ae76d8c0dc01d8eb80000f4.png

练习:

单行插入

d76c55747c08d3e046f9a1f3ab1866ec.png

多行插入

5a3e4a8794dd885710dc30281dd3b2f7.png

删除内容

1808d91421644770351f844f9ac3f4c3.png

sed命令-修改

7e6e011be1471615fa11c192988bf9d1.png

◆ “#”作为定界符,“/”也可以作为定界符,当替换内容有包含定界符时,需要进行转义

◆ 如果要修改文件内容,需要加“-i”参数

练习:

修改文件内容,不对源文件起效

d8c96c16a03ea2741851e31688ac743a.png

修改源文件内容

16b95018d10b285f13f79e091551a3bc.png

修改文件指定行对应的内容

26fc55249f08a09a921690b394e9c5cd.png

sed分组替换功能

正则表达式中的分组功能sed也是可以支持的,用()记住正则表达式的一部分,其中,\1为第一个小括号里面的内容,如果还有其他的下括号,那么\2即可第二个,以此类推...,最多记住9个。

实例: I am yy teacher.这串文本想要保留yy,删除剩余的部分

ad1b1f2d18083ca0bbea2498542cf1d4.png

给配置文件中某一项配置加注释

e2667019c6de542dcf1ee369d27bc6be.png

sed命令-查询

查询相比较是最简单的,sed中的查询相比cat、more命令可以更加精细。

例如:

查询文件第二行内容(p即表示查询)

bc3904d5593430347f40cb4e6ee265db.png

查询文件1-10行

a1e6c4ad24ac913ae9decd3a4f2767aa.png

注意:p查询命令需要和-n参数结合一起使用,如果不使用-n 会输出原来行内容及匹配行的内容,-n表示取消原来行输出

0a13294eb36ef76e2a162be99f4028cb.png

综合实例

用sed取出Linux网卡eth0的IP地址

1ac24b17b1bec3575cdb6b83e9fb071a.png

将/etc/passwd文件中非单词字符替换成空格

4c73c7b7f5458aea4924ab3ff977da42.png

问题?使用单引号or双引号区别?

◆ 双引号把双引号的内容输出出来;如果内容中有命令,变量等,会先把命令,变量解析出结果,然后再输出最终内容来。双引号内命令或变量的写法为命令或变量或$(命令或变量)。

◆ 单引号所见即所得,将单引号内的内容原样输出,阻止所有字符的转义。

本文由柠檬班歪歪原创,转载需注明出处!

11d9110ff4ee5256499bd7127a3ae11d.png

转发到朋友圈是最高的赞赏

关注柠檬班微信公众号

领取100G软件测试资料

让软件测试学习变得更简单!

330902028c8645fdb78da15177f5356f.gif

Shell脚本如何备份数据库?扫码即可获取解题视频

ad28b381e2200aa13f2147aa8f97657a.png

ac9185dc867ca4ad15a6437abb57631d.png

一言不合就给我在看

eeefe1670ff02e96331140bf9ace852e.gif

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

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

相关文章

Hadoop源码解析之: TextInputFormat如何处理跨split的行

Hadoop源码解析之: TextInputFormat如何处理跨split的行转载于:https://blog.51cto.com/taikongren/1742425

linux cpu使用率1200%,linux下用top命令查看cpu利用率超过100%

今天跑了一个非常耗时的批量插入操作。。通过top命令查看cpu以及内存的使用的时候,cpu的时候查过了120%。。以前没注意。。通过在top的情况下按大键盘的1,查看的cpu的核数为4核。通过网上查找,发现top命令显示的是你的程序占用的cpu的总数&am…

Js-载入时选中文

<form action""> <input type"text" name"textRange" size"50" value"这是豪情的blog&#xff0c;这里是技术的海洋&#xff0c;是人生的第一起跑线~&#xff01;" /><br /> <textarea name"your…

FileUpload时用Javascript检查扩展名是否有效

通用的检查方法。首先定义好有效的文件扩展名&#xff0c;存放在阵列中。 在JavaScript获取FileUpload控件的文件路径&#xff0c;并取得路径中的文件扩展名。再与阵列中的扩展名比较&#xff0c;如果存在&#xff0c;说明上传的文件是有效的&#xff0c;反之无效。 <asp:Fi…

python爬虫豆瓣250_python爬虫二 爬取豆瓣Top250上

The Dormouses storyOnce upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.... """ 使用BeautifulSoup解析这段代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩…

【02】把 Elasticsearch 当数据库使:过滤和排序

使用 https://github.com/taowen/es-monitor 可以用 SQL 进行 elasticsearch 的查询。本章介绍简单的文档过滤条件 exchangenyse SQL $ cat << EOF | ./es_query.py http://127.0.0.1:9200 select * from symbol where exchangenyse limit 1 EOF {"sector": &q…

登录页面跳出框架的JS

框架页面下跳转到登录页面&#xff0c;会遇到登录页面仍然在框架中 <script type"text/javascript">if (top.location ! self.location) {top.locationself.location;}</script> 这个js就能解决问题了&#xff01;转载于:https://www.cnblogs.com/longxi…

python dialect='excel'是什么意思_python读取和生成excel文件

今天来看一下如何使用python处理excel文件&#xff0c;处理excel文件是在工作中经常用到的&#xff0c;python为我们考虑到了这一点&#xff0c;python中本身就自带csv模块... 今天来看一下如何使用python处理excel文件&#xff0c;处理excel文件是在工作中经常用到的&#xff…

linux运维工程师 知乎,运维面试一般问些什么问题 知乎

面试基本上都离不开以下这些问题&#xff1a;1.请用最简洁的语言描述您从前的工作经历和工作成果。2.您认为此工作岗位应当具备哪些素质&#xff1f;3.您平时习惯于单独工作还是团队工作&#xff1f;4.您对原来的单位和上司的看法如何&#xff1f;5.您如何描述自己的个性&#…

[ javascript ] 司徒正美的fadeOut-fadeIn效果!

首先感谢司徒正美的文章! 在司徒大神的博客看到一个简单的渐入渐出的效果。全然採用js实现。 例如以下&#xff1a; <!doctype html> <html dir"ltr" lang"zh-CN" ><head><meta charset"utf-8"/><meta http-equiv&qu…

玩转博客园的5个小技巧

转载自:http://www.cnblogs.com/lloydsheng/archive/2010/05/17/1737267.html 写博客也有几年了&#xff0c;现在能找到的第一篇博文发布时间是2007年11月11日&#xff0c;那还是在百度空间里面的&#xff0c;其实更早的是在csai&#xff0c;不过帐号&#xff0c;密码&#xff…

业务层勿用继承,不要为了方便舍弃了性能。TʌT不好意思我错了

很多人喜欢在action 或service或dao层继承一些公共的东西 比如jdbc或一些其他的东西 我看过一些小源码也经常这样 废话不多说 直入正题 直入正题前先科普一下TheardLocal类 懂的人直接跳 线程不安全指的是一个带有类成员变量&#xff08;状态&#xff09;的类的单列被多个线程访…

python棋盘最短路径_【leetcode】64. Minimum Path Sum 棋盘最短路径

1. 题目 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. Note: You can only move either down or right at any point in time. 2. 思路 从右下往左上移动&#x…

linux kvm安装win7,ubuntu14.04 使用kvm安装win7系统

办公电脑从win7换成ubuntu已经有几个月了..环境:ubuntu 14.04kvm 2.0.0需要的各种软件也都安装的差不多了.. 迅雷 qq office vmware 等 这些我常用的软件也都安装上了..我的电脑配置也算可以了(thinkpad E 系列 i5 8G内存 )但是vmware这个东西在ubuntu上的表现不是那么让人满意…

Python 18.4 aiohttp

aiohttpasyncio可以实现单线程并发IO操作。如果仅用在客户端&#xff0c;发挥的威力不大。如果把asyncio用在服务器端&#xff0c;例如Web服务器&#xff0c;由于HTTP连接就是IO操作&#xff0c;因此可以用单线程coroutine实现多用户的高并发支持。asyncio实现了TCP、UDP、SSL等…

python函数和模块有什么特性_python-函数包和模块

python函数的作用&#xff1a; 在Python代码段中如果有一段几十行的代码&#xff0c;需要多次重复使用这几十行代码时&#xff0c;为了提高代码的可用性&#xff0c;将代码段放进函数体内&#xff0c;以后在使用中直接调用该函数模块即可&#xff0c;函数是一个独立的函数体或是…

hibernate继承映射之每个具体类一张表

数据模型 表person 表student 表worker 对象模型 Person private String id;private String name;private int age;private String sex; Student extends Person private String school; Worker extends Person private String factory; xml配置&#xff1a; <?xml version…

linux系统下安装qgis,深度操作系统 deepin 15.11安装 QGIS 3.4

深度操作系统是基于Linux内核&#xff0c;以桌面应用为主的开源 GNU/Linux 操作系统&#xff0c;支持笔记本、台式机和一体机。深度操作系统(deepin)包含深度桌面环境(DDE)和近30款深度原创应用&#xff0c;及数款来自开源社区的应用软件&#xff0c;支撑广大用户日常的学习和工…

读取并修改App.config文件(转载)

1. 向项目添加app.config文件&#xff1a;右击项目名称&#xff0c;选择“添加”→“添加新建项”&#xff0c;在出现的“添加新项”对话框中&#xff0c;选择“添加应用程序配置文件”&#xff1b;如果项目以前没有配置文件&#xff0c;则默认的文件名称为“app.config”&…

No resource found that matches the given name 'android:Widget.Material.A解决方案

1&#xff1a;首先新建空白工作区 2&#xff1a;先import appcompat_v7 appcompat_v7在一个类似这样的地方&#xff0c; C:\mywork\android\android-sdk-windows\extras\android\support\v7\appcompat 然后用import进来&#xff0c;像如下操作&#xff1a; 确保sdk是5.0及以上 …