计算机基础篇之_sed

sed  【Stream EDitor  流编辑器】
 【行编辑器,逐行处理,把处理的结果保存在内存空间(模式空间),在内存中完成编辑,把结果输出。默认不编辑原文件,仅仅对模式空间中的数据做处理,然后处理结束后,将模式空间打印至屏幕】
语法:
    sed  [选项] ‘AddressCommand‘ file...
【选项】
      -n:静默模式(不显示模式空间中的内容)
      -i:直接修改原文件
      -e:脚本1 -e 脚本2 :可以同时执行多个脚本
       -f /path/to/sed_脚本
            sed -f /path/to/scripts file
       -r: 表示使用扩展正则表达式
【Address】
         1)起始行,结束行,$:表示最后一行
         2)/正则表达式/
         3) /模式1/,/模式2/
            :第一次被模式1匹配到的行开始----第一次被模式2匹配到的行结束,这中间的所有行
        4)指定的行
        5)开始行,+N
           :从开始行向后的N行(N+1行)
【命令】
        d:删除符合条件的行
        p:显示符合条件的行
        a   \字符串:在指定的行后追加新行
        i     \字符串:在指定的行前面添加新行
        r file :在指定文件内容添加至符合条件的行处
        w file: 在指定范围内的内容另存至指定的文件中
        s /正则表达式/字符串/[修饰符]
            :查找并替换,模式只替换每行中第一次被模式匹配到的字符串
[修饰符]
        -g:全局替换
        -i : 忽略字符大小写
示例

1,删除文件中1到3行
[[email protected] ~]# sed ‘1,3d‘ /etc/a.txt
2,删除包含"dev"的行
[[email protected] ~]# sed ‘/dev/d‘ /etc/a.txt
3,删除指定行"1"行+后2行(总计3行)
[[email protected] ~]# sed ‘1,+2d‘ /etc/a.txt
4,只删除第一行
[[email protected]~]# sed ‘1d‘ /etc/a.txt
5,删除以#号开始的行
[[email protected] ~]# sed ‘/^#/d‘ /etc/a.txt
6,仅显示有字符串"dev"的行
[[email protected] ~]# sed -n ‘/dev/p‘ /etc/a.txt
7,在所有行后面加上字符串"xxx"
[[email protected] ~]# sed ‘1,$\a xxx‘ /etc/a.txt
[[email protected] ~]# sed ‘/^\//a \###‘ /etc/a.txt
8,在以/前面添加新行,内容为###
[[email protected] ~]# sed ‘/^\//i \###‘ /etc/a.txt
9,在文件的最后追加b.txt文件
[[email protected] ~]# sed ‘$r /etc/b.txt‘ /etc/a.txt
10,在a.txt文件中查找以"/dev"字符串的行保存至b.txt文件中
[[email protected] ~]# sed ‘/dev/w /tmp/c.txt‘ /etc/a.txt
11,在a.txt文件中行首的/替换成#
[[email protected] ~]# sed ‘s/^\//#/g‘ /etc/a.txt
[[email protected] ~]# sed -i ‘s/20/30/g‘ /etc/hosts
12,&:引用模式匹配整个字符串
[[email protected] ~]# cat /tmp/a.txt
love
like
[[email protected] ~]# sed ‘[email protected]@&[email protected]‘ /tmp/a.txt
[[email protected] ~]# sed ‘[email protected]\(l..e\)@\[email protected]‘ /tmp/a.txt
lover
liker
[[email protected] ~]# sed ‘[email protected]\(..e\)@L\[email protected]‘ /tmp/a.txt
Lover
Liker
13,删除history命令行首的空白处
[[email protected] ~]# history | sed ‘s/^[[:space:]]//g‘
14,删除文件中行首的空白符
[[email protected] sh]# sed -r ‘s/^[[:space:]]+//g‘ /etc/grub2.cfg
15.删除文件中的空白行
[[email protected] sed]# sed ‘/^$/d‘ sed.txt
16,删除以#号开头的行
[[email protected] sed]# sed ‘s/#//g‘ sed.txt
17.删除行首为空白字符的行
[[email protected] sed]# sed -r ‘s/^[[:space:]]+//g‘ sed.txt
18.查找父目录
[[email protected] ~]# echo "/etc/rc.d" | sed -r ‘s#^(/.*/)[^/]+/?#\1#g‘
/etc/

THE END

原文地址:https://www.cnblogs.com/xiaofu89120/p/12239301.html

时间: 2024-09-28 09:28:13

计算机基础篇之_sed的相关文章

计算机基础篇

一.为何要学习计算机基础? 好多人觉得自己有点基础就都想着直接敲代码,觉得基础知识很容易,很简单,就不怎么用心去学.然而,我觉得基础知识很重要.就像盖一栋楼房一样,你先要打好地基,再去盖房.  Python是一门编程语言,即通俗一点说就是语言. 我们都知道世界上有很多种语言,比如:汉语,英语,阿拉伯语等等众多的语言.要想用这些语言去和人沟通,如果你想和英国人说话,你必须得会英语吧.而我们的计算机也有它自己的语言,你要想让计算机帮助我们做事情,你就需要和它沟通吧.那你就得懂得计算机语言吧,也就是编

计算机基础篇之二

目录 1.1 编程语言 1)低级语言 2)高级语言 1.2 内核kernel 1.3 程序 1.4 进程 1.5 cpu内存空间 1.1 编程语言 1)低级语言 #离机器越近语言 #二进制机器指令 #汇编语言 #ADD,R0,R1,ST... 2)高级语言 #离近人类越近的自然语言 #编译型语言 #c,c++,go... #解释型语言 #c#,python,java,swift,basic... 1.2 内核kernel #是一个通用软件,运行在硬件上,不负责具体的工作,只是协调各个程序,将硬件

编程必备基础知识|计算机组成原理篇(06):计算机的字符与编码集

计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作.特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力. 有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理.操作系统.计算机网络,这些都是大学计算机课程里面最重要的内容.文章对这些内容做了提炼和

编程必备基础知识|计算机组成原理篇(07):计算机的总线

计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作.特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力. 有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理.操作系统.计算机网络,这些都是大学计算机课程里面最重要的内容.文章对这些内容做了提炼和

编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作.特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力. 有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理.操作系统.计算机网络,这些都是大学计算机课程里面最重要的内容.文章对这些内容做了提炼和

如何成为一名黑客(网络安全从业者)——计算机基础知识篇

大家好,我是Mr.Quark,大家可以叫我夸克,欢迎大家在微信公众号(Quark网络安全)上给我留言,如果有时间我一定会一一回复大家的.今天我将和大家一起学习"如何成为一名黑客"或者说"如何成为一名网络安全专家". 在进入正题之前,我们先来给黑客下一个定义,毕竟如果连黑客的含义都不了解,成为黑客更是无从谈起. "黑客"称呼的变迁 在很久很久以前(别问我有多久,不要在意这些细节),"黑客"指的是喜爱钻研技术.精通计算机技术的程序

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编译,所以借此篇内容说明一下原由并为之后文章的学习做准备. 即使本片内容只是在围绕一个小小的HelloWorld程序开展,但还是希望朋友们不要急于求成,"欲速则不达". 文章整体思路: 我们循序渐进地来看,一个Qt应用的完成有以下一个重要的步骤: 项目创建->源码编译->程序运行

Windows Azure系列 -《基础篇》- 如何创建虚拟机

首先,使用自己的windows azure账号登陆管理平台manage.windowsazure.cn,找到并点击"虚拟机"标签,即可看到目前云平台中你所拥有的虚机实例,在我的环境中现在没有任何的虚机,所以我们可以通过点击图示的新建按钮进行选择或直接点击"创建虚拟机"进行创建: 点击"创建虚拟机",在DNS名称位置填写所建虚机的主机名,并选择映像和虚机大小(可选单核至8核,内存从768M至56G),这里说明一下,处于用户名不可以设置为常用的adm