我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux系统sed命令怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux系统sed命令怎么使用

这篇文章主要讲解了“Linux系统sed命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统sed命令怎么使用”吧!

Linux系统sed命令怎么使用

我们知道,Vim 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。但本节要讲的 sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。

sed命令的使用规则

命令格式如下:

sed [option] 'command' input_file

其中option是可选的,常用的option有如下几种:

-n 使用安静(silent)模式,只列出经过sed特殊处理的那一行(或者动作)内容;-e 直接在指令列模式上进行 sed 的动作编辑;-f 直接将 sed 的动作写在一个文件内, -f filename 则可以执行filename内的sed命令;-r 让sed命令支持扩展的正则表达式(默认是基础正则表达式);-i 直接修改读取的文件内容,而不是由屏幕输出;

常用的命令有以下几种:

a \: 即append追加字符串,可将其后的字符加在所选择内容的后面c \: 取代/替换字符串,可将其后内容替换至所选内容d  : 即delete删除,该命令会将当前选中的行删除i \: 即insert插入字符串,可将其后内容插入至所选内容前p  : print即打印,该命令会打印当前选择的行到屏幕上s  : 替换,通常s命令的用法是这样的:1,2s/old/new/g,将old字符串替换成new字符串

命令示例

假设有一个本地文件test.txt,文件内容如下:

[root@linuxprobe ~]$ cat test.txtthis is first linethis is second linethis is third linethis is fourth linethis fifth linehappy everydayend

本节将使用该文件详细演示每一个命令的用法。

a命令

[root@linuxprobe ~]$ sed '1a \add one' test.txtthis is first lineadd onethis is secondlinethis is third linethis is fourth linethis is fifth linehappy everydayend

本例命令部分中的1表示第一行,同样的第二行写成2,第一行到第三行写成1,3,用表示最后一行,比如表示第二行到最后一行中间所有的行(包含第二行和最后一行)。
本例的作用是在第一行之后增加字符串”add one”,从输出可以看到具体效果。

[root@linuxprobe ~]$ sed '1,$a \add one' test.txtthis is first lineadd onethis is second lineadd onethis is third lineadd onethis is fourth lineadd onethis is fifth lineadd onehappy everydayadd oneendadd one

本例表示在第一行和最后一行所有的行后面都加上”add one”字符串,从输出可以看到效果。

[root@linuxprobe ~]$ sed '/first/a \add one' test.txtthis is first lineadd onethis is secondlinethis is third linethis is fourth linethis is fifth linehappy everydayend

本例表示在包含”first”字符串的行的后面加上字符串”add one”,从输出可以看到第一行包含first,所以第一行之后增加了”add one”

[root@linuxprobe ~]$ sed '/^ha.*day$/a \add one' test.txtthis is first linethis is secondlinethis is third linethis is fourth linethis is fifth linehappy everydayadd oneend

本例使用正则表达式匹配行,^ha.*day$表示以ha开头,以day结尾的行,则可以匹配到文件的”happy everyday”这样,所以在该行后面增加了”add one”字符串。

i命令

i命令使用方法和a命令一样的,只不过是在匹配的行的前面插入字符串,所以直接将上面a命令的示例的a替换成i即可,在此就不啰嗦了。

c命令

[root@linuxprobe ~]$ sed '$c \add one' test.txtthis is first linethis is secondlinethis is third linethis is fourth linethis is     fifth linehappy everydayadd one

本例表示将最后一行替换成字符串”add one”,从输出可以看到效果。

[root@linuxprobe ~]$ sed '4,$c \add one' test.txtthis is first linethis is secondlinethis is third lineadd one

本例将第四行到最后一行的内容替换成字符串”add one”。

[root@linuxprobe ~]$ sed '/^ha.*day$/c \replace line' test.txtthis is first linethis is secondlinethis is third linethis is fourth linethis is fifth linereplace lineend

本例将以ha开头,以day结尾的行替换成”replace line”。

d命令

[root@linuxprobe ~]$ sed '/^ha.*day$/d' test.txtthis isfirst linethis issecond linethis isthird linethis isfourth linethis isfifth lineend

本例删除以ha开头,以day结尾的行。

[root@linuxprobe ~]$ sed '4,$d' test.txtthisis first linethisis second linethisis third line

本例删除第四行到最后一行中的内容。

p命令

[root@linuxprobe ~]$ sed -n '4,$p' test.txtthisis fourth linethisis fifth linehappy everydayend

本例在屏幕上打印第四行到最后一行的内容,p命令一般和-n选项一起使用。

[root@linuxprobe ~]$ sed -n '/^ha.*day$/p' test.txthappy everyday

本例打印以ha开始,以day结尾的行。

s命令

实际运用中s命令式最常使用到的。

[root@linuxprobe ~]$ sed 's/line/text/g' test.txtthis isfirst textthis issecond textthis isthird textthis isfourth textthis isfifth texthappy everydayend

本例将文件中的所有line替换成text,最后的g是global的意思,也就是全局替换,如果不加g,则只会替换本行的第一个line。

[root@linuxprobe ~]$ sed '/^ha.*day$/s/happy/very happy/g' test.txtthis isfirst linethis issecond linethis isthird linethis isfourth linethis isfifth linevery happy everydayend

本例首先匹配以ha开始,以day结尾的行,本例中匹配到的行是”happy everyday”这样,然后再将该行中的happy替换成very happy。

[root@linuxprobe ~]$ sed 's/\(.*\)line$/\1/g' test.txtthisis firstthisis secondthisis thirdthisis fourththisis fifthhappy everydayend

这个例子有点复杂,先分解一下。首先s命令的模式是s/old/new/g这样的,所以本例的old部分即(.*)line命令中使用包裹的内容表示正则表达式的第部分,序号从开始计算,本例中只有一个所以表示正则表达式的第一部分,这部分匹配任意字符串,所以匹配的就是以line结尾的任何行。然后将匹配到的行替换成正则表达式的第一部分(本例中相当于删除line部分),使用\1表示匹配到的第一部分,同样\2表示第二部分,\3表示第三部分,可以依次这样引用。比如下面的例子:

[root@linuxprobe ~]$ sed 's/\(.*\)is\(.*\)line/\1\2/g' test.txtthis  firstthis  secondthis  thirdthis  fourththis  fifthhappy everydayend

正则表达式中is两边的部分可以用\1和\2表示,该例子的作用其实就是删除中间部分的is。

感谢各位的阅读,以上就是“Linux系统sed命令怎么使用”的内容了,经过本文的学习后,相信大家对Linux系统sed命令怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux系统sed命令怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux系统sed命令怎么使用

这篇文章主要讲解了“Linux系统sed命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统sed命令怎么使用”吧!我们知道,Vim 采用的是交互式文本编辑模式,你可以用
2023-06-28

linux系统中sed命令怎么使用

这篇文章跟大家分析一下“linux系统中sed命令怎么使用”。内容详细易懂,对“linux系统中sed命令怎么使用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“linux系统中s
2023-06-28

Linux系统sed命令怎么用

这篇文章主要为大家展示了“Linux系统sed命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统sed命令怎么用”这篇文章吧。 Sed是一款流编辑工具,用来对文本进行过滤与替
2023-06-28

linux系统中如何使用sed命令

小编给大家分享一下linux系统中如何使用sed命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只
2023-06-28

如何在linux系统中使用sed命令

今天就跟大家聊聊有关如何在linux系统中使用sed命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。a.txt内容如下:111222baidu333444google555666交
2023-06-12

Linux中怎么使用sed命令

今天小编给大家分享一下Linux中怎么使用sed命令的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sed是一种在线编辑器,它
2023-06-27

linux系统中sed命令的使用方法

这篇文章给大家分享的是有关linux系统中sed命令的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux中sed命令功能强大,今天我们就来详细介绍如何在Linux中使用sed命令进行替换,具体来说分
2023-06-10

Linux系统中sed命令的使用介绍

本篇内容主要讲解“Linux系统中sed命令的使用介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中sed命令的使用介绍”吧!sed是linux轻量级流编辑器,用于行的操作,主要
2023-06-13

sed命令怎么在Linux中使用

sed命令怎么在Linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的
2023-06-12

linux中Sed命令怎么用

这篇文章主要介绍linux中Sed命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sed命令用法sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处
2023-06-09

Linux sed命令的使用

1.功能简介sed(Stream EDitor)是一种流文件编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(Pattern Space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容
2022-06-03

linux中的sed命令怎么用

在Linux中,sed命令是一个强大的文本处理工具,用于对文本进行替换、删除、插入、查找等操作。它的使用方法如下:1. 替换文本:`sed 's/旧文本/新文本/g' 文件名`- `s`表示替换操作。- `/旧文本/`表示要被替换的文本。-
2023-09-12

linux服务器中怎么使用sed命令

这篇文章将为大家详细讲解有关linux服务器中怎么使用sed命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能
2023-06-13

sed -i命令怎么使用

这篇文章主要介绍了sed -i命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇sed -i命令怎么使用文章都会有所收获,下面我们一起来看看吧。一、简介1、sed介绍 sed 全名为 stream ed
2023-07-02

Linux重要命之sed命令怎么用

这篇文章主要为大家展示了“Linux重要命之sed命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux重要命之sed命令怎么用”这篇文章吧。如何使用sed命令删除文件中的行Sed
2023-06-05

linux中如何使用sed命令

这篇文章将为大家详细讲解有关linux中如何使用sed命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明:sed是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。sed和awk
2023-06-09

Linux的grep,sed,awk命令怎么用

这篇文章主要介绍了Linux的grep,sed,awk命令怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux的grep,sed,awk命令怎么用文章都会有所收获,下面我们一起来看看吧。在Linux系
2023-06-28

怎么正确使用sed命令

本篇内容介绍了“怎么正确使用sed命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sed是一种在线编辑器,它一次处理一行内容。处理时,把当
2023-06-28

sed命令怎么用

这篇文章给大家分享的是有关sed命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用Sed进行文本文件更改的示例假设您有一个名为linuxidc.com.txt的文件,其中包含以下行:1, linux i
2023-06-05

Linux系统yum命令怎么使用

Linux系统yum命令怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管
2023-06-28

编程热搜

目录