详解Linux sed命令语法、命令及实例说明

系统 Linux
sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响。

sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”( oattern space),接看用sed命令处理缓冲区中的内容,处理成后,把缓冲区的内容送往屏幕显示。

接着理下一行,这样不断重复,直到文件末。文件内容没有改改变,除非使用了写入的命令,将内容更新。定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。

一、sed语法

sed 命令的基本格式如下:

  1. sed [选项] [脚本命令] 文件名 

该命令常用的选项及含义,如表 1 所示。

详解Linux sed命令语法、命令及实例说明

成功使用 sed 命令的关键在于掌握各式各样的脚本命令及格式,它能帮你定制编辑文件的规则。

二、sed脚本命令

sed s 替换脚本命令此命令的基本格式为:

  1. [address]s/pattern/replacement/flags 

其中,address 表示指定要操作的具体行,pattern 指的是需要替换的内容,replacement 指的是要替换的新内容。

关于指定具体操作行(address)的用法,这里先不做解释,文章后续会对其做详细介绍。

此命令中常用的 flags 标记如表 2 所示。

详解Linux sed命令语法、命令及实例说明

三、实例演示

1. 只打印第三行

  1. sed -n '3p' /var/log/yum.log 

详解Linux sed命令语法、命令及实例说明

2. 只查看文件的第3行到第9行

  1. sed -n '3,9p' /var/log/yum.log 

详解Linux sed命令语法、命令及实例说明

3. 过滤特定字符串,显示正行内容

  1. sed -n '/perl/p' /var/log/yum.log 

详解Linux sed命令语法、命令及实例说明

4. 打印1-5行,并显示行号

  1. sed -n -e '1,5p' -e '=' /var/log/yum.log 

详解Linux sed命令语法、命令及实例说明

5. 替换

  1. sed 's/disabled/enforcing/g' /etc/selinux/config  
  2. sed -i 's/disabled/enforcing/g' /etc/selinux/config  

详解Linux sed命令语法、命令及实例说明

6. 正则匹配IP和子网掩码

  1. ifconfig |sed -n '2p' 
  2. ifconfig |sed -n '2p' | sed -r 's#.*r:(.*) B.*k:(.*)#\1 \2#g'  
  3. --(.*)表示匹配的项,之后可以用\1取出第一个括号内匹配的内容,\2取出第二个括号内匹配的内容  

详解Linux sed命令语法、命令及实例说明

7. sed错误使用

  1. sed 's#,# #h' xx.txt | cut -d" " -f 3,5 xx.txt <-- 错误的用法,前面已经处理了,后面又用cut查看h.txt文件 
  2. sed 's#,# #h' xx.txt | cut -d" " -f 3,5 --> 正确的用法 
责任编辑:赵宁宁 来源: 今日头条
相关推荐

2010-06-22 10:28:04

linux at命令

2010-06-24 14:12:20

Linux Cat命令

2018-02-07 09:25:50

Linux命令touch

2010-06-24 16:55:47

Linux chgrp

2009-08-03 09:20:18

find命令详解find命令linux find命

2010-06-22 13:23:18

Linux at命令详

2010-06-24 11:16:17

Linux Cat命令详解

2019-10-27 22:47:30

Linux命令lsmod

2009-07-31 15:39:00

linux cd命令详目录切换技巧总结

2023-07-03 22:35:50

Linux命令

2021-06-13 09:01:47

SedLinux命令

2014-07-25 15:03:33

Linuxshellsed

2009-08-03 11:38:57

linux at命令详linux at命令

2010-03-19 09:22:02

linux命令应用及语

2009-07-31 16:23:00

linux cd命令cd命令技巧

2015-07-21 12:43:58

Dockerfile命令实例

2012-05-10 08:37:54

Linuxxargs

2012-05-11 10:07:55

Linuxfind

2009-07-31 17:51:42

linux vi命令详linux vi命令编辑器

2021-09-21 15:28:33

LinuxSed智能引号
点赞
收藏

51CTO技术栈公众号