当前位置:首页 > 实用技巧 >

linux怎么添加sed命令(linux教程sed命令的用法教程)

来源:原点资讯(www.yd166.com)时间:2023-11-18 03:22:01作者:YD166手机阅读>>

请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

本文主要讲解Linux系统中的sed命令的作用与使用案例。

sed用于查找、过滤、文本替换、替换和插入、删除等文本操作。它是Linux/Unix系统提供的强大实用程序之一。我们可以在正则表达式中使用sed。使用sed命令之前,您应该至少对Linux正则表达式有基本的了解。

它提供了文本文件的非交互式编辑,这就是为什么它被用来自动编辑。它有两个缓冲区-pattern buffer和hold buffer。sed在逐行读取文件时使用pattern buffer,并且将当前读取的行插入到pattern buffer中,而hold buffer是一个长期存储,它捕获信息,存储信息,并在需要时重用这些信息。最初,两者都是空的。SED命令用于执行不同的操作,甚至可以不打开文件。

首先创建a.txt文件,我将在该文件上执行sed命令的操作。在本教程中,我使用了a.txt文件解释了所有的例子。如果我编写每个sed命令的输出,本文就会变得太长。因此,您可以先引用同一个文件来练习所有的命令。

查看a.txt的文本内容:

[root@rhel7~]#cata.txt

输出如下:

lifeisn'tmeanttobeeasy,lifeismeanttobelived. Trytolearn&understandsomethingneweverydayinlife. Respecteveryone&mostimportantloveeveryone. Don’thesitatetoaskforlove&don’thesitatetoshowlovetoo. Lifeistooshorttobeshy. Inlifeexperiencewillhelpyoudifferentiatingrightfromwrong.

linux怎么添加sed命令,linux教程sed命令的用法教程(1)

Linux/Unix中sed命令中的实用案例

2. 使用基本sed命令操作文件

linux怎么添加sed命令,linux教程sed命令的用法教程(2)

使用基本sed命令操作文件

2.1 在每一行后面插入一行空白

[root@rhel7~]#sedGa.txt

2.2 在每一行后面插入两行空白

[root@rhel7~]#sed'G;G'a.txt

2.3 删除空行,并在每一行之后插入一个空行

[root@rhel7~]#sed'/^$/d;G'a.txt

2.4 在匹配“love”的每一行上插入空行

[root@rhel7~]#sed'/love/{x;p;x;}'a.txt

2.5 在匹配“love”的每一行下面插入空行

[root@rhel7~]#sed'/love/G'a.txt

2.6 在每一行的左边插入5个空格

[root@rhel7~]#sed's/^//'a.txt

3. 行编号

给文件的每一行标上序号(左对齐)。=用于给行编号。\t用于数字和句子之间的制表符(TAB)

[root@rhel7~]#sed=a.txt|sed'N;s/\n/\t/'

给文件的每一行编号(左对齐,右对齐)。这个命令类似于cat -n filename

[root@rhel7~]#sed=a.txt|sed'N;s/^//;s/*\(.\{4,\}\)\n/\1/'

为文件的每一行编号,空行除外:

[root@rhel7~]#sed'/./='a.txt|sed'/./N;s/\n//'

4. 删除指定行

删除特定行语法:

sed‘nd’filename

例如:

[root@rhel7~]#sed'5d'a.txt

删除最后一行语法:

sed‘$d’filename

删除从x到y的行

语法:

sed‘x,yd’filename

[root@rhel7~]#sed'3,5d'a.txt

从第N行开始删除语法:

sed‘nth,$d’filename

例如:

[root@rhel7~]#sed'2,$d'a.txt

删除内容匹配的行:语法:

sed‘/pattern/d’filename

例如:

[root@rhel7~]#sed'/life/d'a.txt

删除从第n行开始的行以及从第n行开始的第2行

语法:

sed‘n~2d’filename

例如:

[root@rhel7~]#sed'3~2d'a.txt

删除与内容匹配的行以及后面的两行语法:

sed‘/pattern/, 2d’filename

例子:

[root@rhel7~]#sed'/easy/, 2d'a.txt

删除空行:

[root@rhel7~]#sed'/^$/d'a.txt

删除空行或以“#”开头的行

[root@rhel7~]#sed-i'/^#/d;/^$/d'a.txt

5. 查看或打印文件

如果我们想查看文件的内容,那么我们使用cat命令,如果我们想查看任何文件的底部和顶部内容,我们使用head和tail等工具。但是,如果我们需要查看文件中间的特定部分,该怎么办呢?在这里,我们将讨论如何使用sed命令来查看文件指定部分。

linux怎么添加sed命令,linux教程sed命令的用法教程(3)

查看或打印文件


查看文件x到y行的内容:
语法:

sed-n‘x,yp’filename

例子:

[root@rhel7~]#sed-n'2,5p'a.txt

查看除给定范围之外的整个文件内容:语法:

sed‘x,yd’filename

例如:打印文件,除了第2和第4行。

[root@rhel7~]#sed'2,4d'a.txt

打印文件的第n行语法:

sed-n‘address’pfilename

例子:

[root@rhel7~]#sed-n'4'pa.txt

从第x行打印到第y行。语法:

sed-n‘x,y’pfilename

例子:

[root@rhel7~]#sed-n'4,6'pa.txt

只打印最后一行语法:

sed-n'$'pfilename

例如:

[root@rhel7~]#sed-n'$'pa.txt

打印文件,从第n行到文件结束语法:

sed-n‘n,$p’filename

例如:

sed-n'3,$'pa.txt

6. 打印匹配内容

只打印与指定匹配内容的行

语法:

sed-n/pattern/pfilename

例子:

[root@rhel7~]#sed-n/every/pa.txt

打印与指定内容匹配的行。例如从匹配行到第x行。语法:

sed-n‘/pattern/,xp’filename

例子:接下来打印与指定内容匹配的行,第三行打印与指定内容everyone匹配的行,因此它从第3行打印到第5行。如果要打印文件直到结束,请使用$来代替5。

[root@rhel7~]#sed-n'/everyone/,5p'a.txt

打印第x行到匹配的行,如果没有找到匹配内容,则打印到文件的最后。语法:

sed-n‘x,/pattern/p’filename

例如:

sed-n'1,/everyone/p'a.txt

从匹配的内容开始打印往下打印N行(不包括匹配行)

sed-n‘/pattern/, xp’filename

例子:

sed-n'/learn/, 2p'a.txt

7. 用sed命令替换文件内容

linux怎么添加sed命令,linux教程sed命令的用法教程(4)

用sed命令替换文件内容

把life替换为leaves

sed's/life/leaves/'a.txt

替换一行中出现的第n个匹配内容语法:

sed‘s/old_pattern/new_pattern/n’filename

例子:替换匹配内容行的第2个匹配的内容:

[root@rhel7~]#sed's/to/two/2'a.txt

我们写“2”是因为我们替换了第二个出现的内容。同样,你可以根据需要修改,比如修改为3或4等。

替换每一行中出现的所有匹配内容:

[root@rhel7~]#sed's/life/learn/g'a.txt

将匹配内容从第n个开始替换为目标内容:语法:

sed‘s/old_pattern/new_pattern/ng’filename

例子:从每行第2个匹配内容开始替换

[root@rhel7~]#sed's/to/TWO/2g'a.txt

这个sed命令将每一行(上面的命令带有g表示每一行)中出现的第二个、第三个等匹配的to替换为TWO。

如果您希望只打印替换行,那么使用“-n”选项和“/p”打印标志来只显示替换行。

[root@rhel7~]#sed-n's/to/TWO/p'a.txt

如果您希望打印替换的行两次,那么只使用“/p”打印标记而不使用“-n”选项

[root@rhel7~]#sed's/to/TWO/p'a.txt

替换特定行号上的匹配内容。这里,“m”是行号。

语法:

sed‘ms/old_pattern/new_pattern/’filename

例如:

[root@rhel7~]#sed'3s/every/each/'a.txt

如果您只想打印替换的行

[root@rhel7~]#sed-n'3s/every/each/p'a.txt

在已定义的行范围内替换字符串语法:

sed‘x,ys/old_pattern/new_pattern/’filename

x = 开始的行号y = 结束的行号

例子:

[root@rhel7~]#sed'2,5s/to/TWO/'a.txt

注意:如果我们希望将匹配内容操作到文件的最后一行,可以使用$来代替y。

例如:

[root@rhel7~]#sed'2,$s/to/TWO/'a.txt

如果您希望替换匹配的内容以忽略字符大小写(以大写或小写开头),那么有两种方法可以替换这些匹配的内容

首先,可以先/i的参数

语法:

sed‘s/old_pattern/new_pattern/i’filename

例如:

[root@rhel7~]#sed's/life/Love/i'a.txt

第二种方法,可以使用正则表达式:

[root@rhel7~]#sed's/[Ll]ife/Love/g'a.txt

将多个空格替换为单个空格

[root@rhel7clang]#sed's/*//g'filename

在指定匹配内容的行里,替换内容语法:

sed‘/followed_pattern/s/old_pattern/new_pattern/’filename

例子:

[root@rhel7~]#sed'/is/s/live/love/'a.txt

替换内容,除了第N行语法:

sed‘n!s/old_pattern/new_pattern/’filename

例子:

[root@rhel7~]#sed-i'5!s/life/love/'a.txt

8. 总结

通过本文的演示,您应该对sed命令的功能与作用应该有大致的了解了吧?这些案例都很实用的,可以收藏起来以备不时之需。

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/cyml/1717.html

点击了解更多,快速查看更多的技术文章列表。

栏目热文

linuxsed命令详解(sed命令在linux中的作用)

linuxsed命令详解(sed命令在linux中的作用)

一 基础介绍1.1 功能sed(流编辑器)是一种强大的编辑器,用于处理文本数据。1.2 语法sed [选项] '...

2023-11-18 04:05:12查看全文 >>

linux运维之sed使用教程交流(linuxsed命令详细教程学习)

linux运维之sed使用教程交流(linuxsed命令详细教程学习)

简介 Sed是一款流编辑工具,用来对文本进行过滤与替换操作,特别是当你想要对几十个配置文件做统一修改时,你会感受到Sed...

2023-11-18 03:48:37查看全文 >>

linuxsed命令使用教程(sed命令在linux中的作用)

linuxsed命令使用教程(sed命令在linux中的作用)

编译自: https://linuxhandbook.com/Sed-reference-guide/ 作者: Sylv...

2023-11-18 03:38:30查看全文 >>

selinux是如何管理进程的(简述selinux的三种工作模式和功能)

selinux是如何管理进程的(简述selinux的三种工作模式和功能)

进程的概念与查看进程-运行中的程序,从程序开始运行到终止的整个生命周期是可管理的 查看命令 ps -e 表示所有...

2023-11-18 03:36:27查看全文 >>

linux中sed命令用法(sed命令在linux中的作用)

linux中sed命令用法(sed命令在linux中的作用)

作用sed命令是一个非交互式的行文本编辑器,它能对文件内容进行编辑,默认每次处理文本文件中所匹配到一行内容到模式空间,然...

2023-11-18 03:44:39查看全文 >>

气压带风带的分布图示(气压带风带的分布特点)

气压带风带的分布图示(气压带风带的分布特点)

知识点气压带、风带假设地球是一个光滑的球体,则地球上存在着“七压六带”。春分和秋分时,气压带的纬度位置为:①赤道低气压带...

2023-11-18 03:59:18查看全文 >>

气压带风带的分布有何特点(气压带风带的特点及影响)

气压带风带的分布有何特点(气压带风带的特点及影响)

知识点1、亚洲、欧洲的气候分布亚欧大陆是世界上最大的大陆,地跨热带、亚热带和寒带,气候类型多样(11种气候),其中季风气...

2023-11-18 04:01:04查看全文 >>

气压带风带分布图及解析(气压带与风带的大致范围)

气压带风带分布图及解析(气压带与风带的大致范围)

知识点1、气压带、风带假设地球是一个光滑的球体,则地球上存在着“七压六带”。春分和秋分时,南北半球的气压带和风带恰好对称...

2023-11-18 03:31:02查看全文 >>

气压带风带的形成过程(气压带风带是怎么形成的)

气压带风带的形成过程(气压带风带是怎么形成的)

设计思路:一起来做“追风者”“解落三秋叶,能开二月花。过江千尺浪,入竹万竿斜。”风是大自然的使者,是同学们每天感受的自然...

2023-11-18 03:39:48查看全文 >>

气压带与风带的形成与分布(气压带与风带的分布及特征)

气压带与风带的形成与分布(气压带与风带的分布及特征)

高中生活,简单而又充实每晚的晚自习后,小编将陪你复习今天的地理知识,珍惜今天最后的学习时光全文约1400字,大约需要2分...

2023-11-18 03:47:57查看全文 >>

文档排行