2.sed命令

2.sed命令

sed基本用法:

sed: Stream EDitor

行编辑器 (全屏编辑器: vi)

 

sed: 模式空间

默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;

 

 

sed [options] 'AddressCommand' file ...

-n: 静默模式,不再默认显示模式空间中的内容

-i: 直接修改原文件

-e SCRIPT -e SCRIPT:可以同时执行多个脚本

-f /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts  file

-r: 表示使用扩展正则表达式

 

Address

1StartLine,EndLine

比如1,100

$:最后一行

2/RegExp/

/^root/

3/pattern1/,/pattern2/

第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行

4LineNumber

指定的行

5StartLine, +N

startLine开始,向后的N行;

 

Command

d: 删除符合条件的行;

p: 显示符合条件的行;

a \string: 在指定的行后面追加新行,内容为string

\n:可以用于换行

i \string: 在指定的行前面添加新行,内容为string

r FILE: 将指定的文件的内容添加至符合条件的行处

w FILE: 将地址指定的范围内的行另存至指定的文件中;

s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串

加修饰符

g: 全局替换

i: 忽略字符大小写

s///: s###, s@@@

\(\), \1, \2

 

l..e: like-->liker

  love-->lover

  

  like-->Like

  love-->Love

 

&: 引用模式匹配整个串

    sed '/l..e/&r/g' sed.txt

sed '/\(l..e\)/\1r/g' sed.txt 后项引用

sed '/l\(..e\)/L\1/g' sed.txt

sed练习:

1、删除/etc/grub.conf文件中行首的空白符;

sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5

sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab

3、删除/etc/inittab文件中的空白行;

sed '/^$/d' /etc/inittab

4、删除/etc/inittab文件中开头的#;

sed 's@^#@@g' /etc/inittab

5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;

sed -r 's@^#[[:space:]]+@@g' /etc/inittab

6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#

sed -r 's@^[[:space:]]+#@@g' /etc/inittab

7、取出一个文件路径的目录名称;

echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'

基名:

echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'

 

转载于:https://www.cnblogs.com/flyback/articles/5862838.html

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

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

相关文章

因此,您是一名新软件工程师。 让我们面对一些事实,揭穿一些神话。

by Trey Huffine通过Trey Huffine 因此,您是一名新软件工程师。 让我们面对一些事实,揭穿一些神话。 (So you’re a new Software Engineer. Let’s face some facts and debunk some myths.) When we’re learning to become software engineers, we’…

java前端接收回显图片_图片上传并回显后端篇

图片上传并回显后端篇我们先看一下效果继上一篇的图片上传和回显,我们来实战一下图片上传的整个过程,今天我们将打通前后端,我们来真实的了解一下,我们上传的文件,是以什么样的形式上传到服务器,难道也是一…

关于scanf和cin的大数据读入效率

关于scanf和cin的大数据读入效率好多大佬都说scanf的读入效率比cin高&#xff0c;我也当练手&#xff0c;用书上的程序用了个测试&#xff0c;程序如下&#xff1a;#include<iostream>#include<ctime>#include<cstdio>#include<windows.h>using namesp…

OBJECT_ID()的使用方法

数据库中每个对像都有一个唯一的ID值&#xff0c;用Object_name(id)可以根据ID值得到对像的名称&#xff0c;object_id(name)可以根据对像名称得到对象的IDobject_id()只能返回用户创建的对像的ID,像以sys开头的表都是系统表所以返回不了的 如下列&#xff1a; select object_n…

Django之model补充:一对多、跨表操作

表结构概述 model.py : class Something(models.Model):name models.CharField(max_length32)class UserType(models.Model):caption models.CharField(max_length32)s models.ForeignKey(Something)# 超级管理员&#xff0c;普通用户&#xff0c;游客&#xff0c;黑河class…

农民约翰是一个惊人的会计_我的朋友约翰在CSS Grid中犯了一个错误。 不要像约翰-这样做。

农民约翰是一个惊人的会计It had been two years and John had no job.已经两年了&#xff0c;约翰没有工作。 John was a smart 20-something guy. Okay, he had a job — but it wasn’t one he liked. It was too monotonous and was not nearly creative enough. His day …

zip直链生成网站_手把手教你如何用飞桨自动生成二次元人物头像

【飞桨开发者说】李思佑&#xff0c;昆明理工大学信息与计算科学大四本科生&#xff1b;2018年和2019年两次获得全国大学生数学建模比赛国家二等奖&#xff1b;2020年美国数学建模比赛获M奖。指导老师&#xff1a;昆明理工大学理学院朱志宁想画出独一无二的动漫头像吗&#xff…

Gradle入门到实战(一) — 全面了解Gradle

声明&#xff1a;本文来自汪磊的博客&#xff0c;转载请注明出处 可关注个人公众号&#xff0c;那里更新更及时&#xff0c;阅读体验更好&#xff1a; 友情提示由于文章是从个人公众号拷贝过来整理的&#xff0c;发现图片没有正常显示&#xff0c;没关注公众号的同学可通过如下…

java 0-9所有排列_java实现:键盘输入从0~9中任意5个数,排列组合出所有不重复的组合,打印出来...

必有追加大分&#xff01;&#xff01;&#xff01;比如1.2.3.4.5共有120个组合12345&#xff0c;12354&#xff0c;12435&#xff0c;12453&#xff0c;12534&#xff0c;12543&#xff1b;13245&#xff0c;13254&#xff0c;13425&#xff0c;13452&#xff0c;13524&#x…

智能家居物联网化将成为AWE大会最大看点

AWE大会已经在今日9点半开幕&#xff0c;AWE在今年将扩张至8个展馆&#xff0c;其整体展示规模达到11万平米&#xff0c;这是以往都无法匹敌的。海尔、美的、格力、海信、创维、TCL、康佳、格兰仕、澳柯玛、新飞、美菱、奥马、方太、老板、万和、万家乐、华帝、帅康、樱花、格美…

PHP 命名空间(namespace)

PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的&#xff0c;如果你学过C#和Java&#xff0c;那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。 PHP 命名空间可以解决以下两类问题&#xff1a; 用户编写的代码与PHP内部的类/函数/常量…

给matrix重新列名_如何认真升级Mac终端(甚至给它一个Matrix主题)

给matrix重新列名by Marcus Gardiner通过马库斯加德纳(Marcus Gardiner) 如何认真升级Mac终端(甚至给它一个Matrix主题) (How to seriously upgrade your Mac terminal (and even give it a Matrix theme)) 蓝色药丸&#xff0c;红色药丸和通往极乐世界的3个步骤 (A Blue Pill…

javaweb 图书管理系统完整代码_看一名Java开发人员以红队思维五分钟审计一套代码(续)...

前言上篇文章的发布引起了很多读者的浏览&#xff0c;有很多读者也催更希望读到续集&#xff0c;作者也收获到读者的鼓励&#xff0c;说明这条路线对大家有帮助&#xff0c;是有意义的。所以&#xff0c;今天作者将继续阐述在审计Java代码时的思路。概述上篇文章所讲的SQL注入和…

爱立信数据分析解决方案抓住物联网发展机遇

爱立信在2016年1月6日至9日于美国拉斯维加斯举办的国际消费电子展&#xff08;CES&#xff09;上推出“用户和物联网数据分析”解决方案。该解决方案将能帮助运营商提高对用户和物联网终端的内部管理效率&#xff0c;同时探索跨越多个垂直领域的新型物联网应用。 用户和物联网数…

Lua初学习 9-12 基础

1&#xff1a;string 转 number :tonumber(string) 2: number 转 string :tostring(number) 3:string API: Lua中的字符串是不可变值&#xff0c;a "cocotang" string.gsub(a,"c","z") print(a) ----> cocotang 1获得字符串长度:string.le…

iview下拉选

问题描述&#xff1a;创建场景&#xff0c;连续创建场景时&#xff0c;第一个场景创建成功后&#xff0c;第二次进入创建窗口&#xff0c;点击测试任务下拉编辑只有上次创建成功的那一个任务候选&#xff0c;选中该任务中&#xff0c;关联脚本也只有上次成功创建的唯一个候选下…

JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

图表&#xff0c;是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线。趋势线的运用能够显示数据的变化趋势&#xff0c;同时能够帮助预测数据的未来…

code warri_我参加了有史以来的第一届Warri Tech宣传活动。 这是我学到的。

code warriIn the city of Warri, Delta state of Nigeria, there is a saying that goes “Warri nor dey carry last, if e hard well well na draw”. This translates to “Warri is never behind in the scheme of things (events)”.在尼日利亚三角洲州的沃里市&#xff…

Socket编程小结

目录&#xff1a; 什么是 socket&#xff1f;... 1 Internet 套接字的两种类型... 1 网络理论... 2 结构体... 2 本机转换... 3 IP 地址和如何处理它们... 4 socket()函数... 4 bind()函数... 4 connect()程序... 5 listen()函数... 6 accept()函数... 6 send() and recv() 7 …

idea设置中文界面_《英雄联盟手游》设置界面中文翻译图分享 外服汉化界面一览...

导读 英雄联盟手游目前以及正式上线了&#xff0c;不过现在的话是没有中文版的&#xff0c;只有外服&#xff0c;所有很多地方是看不懂的&#xff0c;也不明白的&#xff0c;这样的话就需要翻译了&#xff0c;具体要怎么设置会比较&#xff0c;相关的步骤是什么呢&#xff1f;下…