sed工作原理和使用方法

1.Sed简介

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

sed工作原理图

2.命令说明

sed [options] ‘AddressCommand‘  file ...

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

-i:         直接修改原文件

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

-f          引用编辑好的sed脚本

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

3.Address寻址

1、StartLine,EndLine               指定开始和结束行

1,100     表示从1到100行

2、/RegExp/                                   使用正则表达式

/^root/

3、/pattern1/,/pattern2/        模式匹配锁定范围

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

4、LineNumber

指定的行

5、StartLine, +N

从startLine开始,向后的N行,共N+1行。

 

4.Command说明

       d:                 删除符合条件的行;

p:                显示符合条件的行;

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

\n:可以用于换行

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

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

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

s/pattern/string/修饰符:

查找并替换,默认只替换每行中第一次被模式匹配到的字符串

修饰符

g: 全局替换

i: 忽略字符大小写

s///:s###, [email protected]@@

s参数的分割符石可以改变的,例如要匹配的字符串中有/而使用原本的/需要添加转义符,此时可以把分割符换位@或其他字符。

模式串的引用:

方式1:\(\)做匹配,使用\1, \2引用之前匹配到的模式。

方式2:&引用模式匹配整个串。

5.sed练习

练习中使用user.txt,一下user.txt的内容:

1.输出user.txt中的第1行。

2.输出user.txt中的1到3行。

3.输出第3行到最后一行。

4.使用正则表达式匹配er6结尾的行并输出

5.使用-e同时执行两段脚本,第一个为匹配到er6结尾的行,第二个为输出第1行。

6.删除1到5行。

7.把1到5行中的首个u替换为U,如果行中有多个u则需要‘1,5s/u/U/g‘的g参数完成所有u的替换。

8.将匹配的第一个0-9的数字替换为空,实现删除数字的功能。第一条命令的最后一行没有删除是因为没有加g参数。

9.将/etc/passwd中的/sbin/nologin替换为/bin/bash。

10.将us字符和r[0-9]的位置替换。

11.在1到3行前插入look作为一行。

12.在1到3行后插入look作为一行。

13.在每行的行首添加字符串line-。

14.在每行的行尾添加-number。

时间: 2024-12-21 08:10:08

sed工作原理和使用方法的相关文章

汽车防雨剂的工作原理和使用方法

身为一名老司机,肯定都有开车遇到雨雾天气的经历,雨水覆盖在后视镜和车窗玻璃上,影响开车视线,安全隐患很大.其实这个问题是可以轻松化解的,只要给汽车玻璃喷上防雨剂,雨天后视镜就不会再沾水了. 一.汽车防雨剂工作原理 玻璃车窗容易残余雨水是因为玻璃具有亲水性,加上行驶途中沾上灰尘,雨滴聚集不容易滑落.汽车防雨剂借鉴荷叶仿生学原理,将氟素纳米分子喷涂在玻璃表面,形成一层光滑防水膜,能快速疏导雨水,避免镜面模糊不清,驾驶更安全. 二.汽车防雨剂使用方法 防雨剂使用方法很简单,注意细节即可. 1.首先将后

IGBTMOS管的工作原理及检测方法

IGBT又称MOS管,是由双极型三极管(BJT)和绝缘栅型场效应管(MOS)组成的复合全控型电压驱动式功率半导体器件.其输入极为MOS管输出极为PNP晶体管.因此,可以把其看作是MOS管输入的达林顿管. 它融合了MOS管的高输入阻抗和GTR的低导通压降两方面的优点,具备易于驱动.峰值电流容量大.自关断.开关频率高(10-40kHz)等特点,已逐步取代晶闸管和门极可关断晶闸管(GTO),是目前发展最为迅速的新一代电力电子器件.广泛应用于小体积.高效率的变频电源.电机调速.UPS及逆变焊机当中. 一

Sed工作原理

sed是一个非交互式的流编辑器.所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出:而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行.整个文件像流水一样被逐行处理然后逐行输出. 下面我们看一下sed的工作过程. sed不是在原输入上直接进行处理的,而是先将读入的行放到缓冲区中,对缓冲区里的内容进行处理,处理完毕后也不会写回原文件(除非用shell

纯干货详解iptables工作原理以及使用方法

简介 网络中的防火墙,是一种将内部和外部网络分开的方法,是一种隔离技术.防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中不法分子破坏企业网络,从而加强了企业网络安全. 防火墙的分类 硬件防火墙,如思科的ASA防火墙,H3C的Secpath防火墙等软件防火墙,如iptables.firewalld等 Linux包过滤防火墙简介 1.Linux操作系统中默认内置一个软件防火墙,即iptables防火墙2.netfilter位于Linux内核中的包过滤功能体

linux命令管道工作原理与使用方法

一.管道定义 管道是一种两个进程间进行单向通信的机制.因为管道传递数据的单向性,管道又称为半双工管道.管道的这一特点决定了器使用的局限性.管道是Linux支持的最初Unix IPC形式之一,具有以下特点: *** 数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道):如果要进行双工通信,需要建 立两个管道. *** 管道只能用于父子进程或者兄弟进程间通信.,也就是说管道只能用于具有亲缘关系的进程间通信. 注意:从管道读数据是一次性操作,数据一旦被读,它就从管道中被抛弃,释放空间以便写更

Docker镜像提交命令commit的工作原理和使用方法

在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用. 下面我们来动手实践. docker pull nginx:1.15.3 用命令行启动一个容器: docker run -d -p 1080:80 --name jerry-nginx nginx:1.15.3 localhost:1080 进入容器的shell: docker exec -it jerry-nginx /bin/bash 查看这个nginx镜像默认的首页: 我想

AIDL的工作原理

初涉IPC,了解AIDL的工作原理及使用方法 android开发之AIDL用法_进程间通信原理详解

虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte

#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout << "A:A" <<endl; } virtual void getb(){ cout << "A:B" <<endl; } }; class B :public A{ public: B(){} virtual void g

sed的工作原理及使用

1.sed的概念 sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出.sed 是基于Basic模式的,sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的. 2.sed的工作原理 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓 冲区中,称为"模式空间"(pattern space),