sed命令总结

在编写shell脚本的过程中,我们经常需要使用sed流编辑器和awk对文本文件进行处理。

什么是sed?

sed是一种在线编辑器,它一次处理一行内容。sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结构。默认情况下,所有的输出行都被打印到屏幕上。

sed的处理过程是什么?

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed先把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入。进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。

sed命令语法

sed [option] ‘AddressCommand‘ file....

常用的option选项参数如:

-i:修改源文件

-n:静默模式

Address

基本可以将其理解为对行的匹配,比如我有个100行的文件,现在有只想对它的第二行到第五行进行删除,这个就是Address

1、StartLine,EndLine 比如1,100

m,n:表示删除第m行到底n行,例如‘2,5d‘,表示删除第2行到第5行

m,$:表示删除第m行到最后一行,$-1位倒数第2行

2、使用模式/Pattern/   使用正则表达式

一旦可以使用正则表达式之后,就会很灵活了

sed ‘/root/d‘ /etc/passwd   #找到root匹配的行,然后进行删除

3、/pattern1/,/pattern2/  表示第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束

这个和之前的范围有点类似,但是他又是正则表达式的匹配

sed ‘/root/,/^mysql/d‘ /etc/passwd  ##这个有问题

4、LineNumber 表示指定的行

例如‘3d‘,表示删除第3行

5、StartLine,+N 表示从startline开始,向后N行,总数N+1行

sed ‘1,+1/d‘ /etc/passwd

Command

d:表示删除符合要求的行

p:显示符合条件的行

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

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

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

w filename:将指定范围内的内容另存至指定的文件中

s /pattern/string/:查找并替换默认只替换每行中第一次被模式匹配到的字符串,修饰符g表示全局替换

s #pattern#string#:查找并替换默认只替换每行中第一次被模式匹配到的字符串,修饰符g表示全局替换

s @[email protected]@:查找并替换默认只替换每行中第一次被模式匹配到的字符串,修饰符g表示全局替换

&:引用匹配模式的整个串 例如sed ‘s/s..p/&r/‘ /etc/fstab 整个s..p的文件后面换成s..pr

\(\):后项引用sed ‘s/\(s..p\)/\1r/‘ /etc/fstab  表示s..p表示在第1项后面加1  看操作理解sed ‘s#s\(..p\)#S\1#‘ /etc/fstab

练习:

1、删除/etc/grub.conf文件中的行首的空白符

sed ‘#\<^$\>#d‘ /etc/grub.conf

2、删除/etc/inittab文件中"id:5:initdefault:" 一行中的数字为3

sed ‘s#id\:5\:initdefault\:#id\:3\:initdefault\:#‘ /etc/inittab

3、删除/etc/inittab文件中的空白行

sed ‘/^#/d‘ /etc/inittab

4、删除/etc/inittab文件中开头的#号

sed ‘s/^#//‘ /etc/inittab

5、删除/etc/inittab文件中开头的#号及后面的空白字符,要求#号后面必须有空白字符

sed ‘s/^#/ /‘ /etc/inittab

时间: 2024-10-31 20:17:35

sed命令总结的相关文章

学习笔记之sed命令使用

一.概述 1.  sed 全称为Stream Editor,就是行编辑器,意味着一次只处理一行文本,sed将被匹配到            的行放到自己特定的空间(通常称为模式空间)中进行编辑:然后再根据结果进行输出显示: 2.  在sed中还有一段空间称为保持空间,sed模式空间中的内容可以与保持空间的内容可以进            行自由互换,实际工作中用处很少,仅作参考: Sed工作流程如图 二.sed命令使用 sed [OPTION]... 'script' [input-file].

sed命令

文本处理三剑客: grep, egrep, fgrep:文本过滤器 sed:Stream EDitor,流编辑器,行     pattem space:模式空间.(基础)     hold space:保持空间 awk:文本格式化工具,报告生成器 语法 sed [OPTION]...  'script'  [input-file] ... script:     地址定界编辑命令         :%s/ 常用选项: -n:不输出模式空间中的内容至屏幕: -e script, --express

sed命令及vim的末行命令

sed:StreamEDitor,流编辑器,以行为单位对一个或多个文件进行编辑处理:每一次sed都会处理给定文件中的一行内容. 在sed处理文本时,将正在处理的当前行存储到临时的缓冲区中,称为"模式空间":用当前行去匹配给定的PATTERN,如果能匹配,则使用command编辑处理:如果不匹配,则默认输出至标准输出:然后继续处理下一行,直到文件的末尾. 默认情况下,sed的所有处理行为不会影响源文件的内容: 我们一般会使用sed命令来自动编辑一个或多个文件,简化对文件的循环操作: se

linux sed命令详解

Linux环境:Ubuntu16.04 sed命令 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html http://blog.csdn.net/yiqingnian28/article/details/23133043 正则表达式 http://blog.csdn.net/wzzfeitian/article/details/8842371 sed -help 查看sed的用法 -n, --quiet, --sile

Linux的sed命令

一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces.sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf 那么这条命令是什么意思?接下来介绍sed命令答案自然就揭晓了.二.sed简介 sed:是一个编辑器,是一个强大的文件处理工具. sed作用:用来替换.删除,更新文件中的内容.sed能自动处理一个或多个文件. sed原理:sed

Linux三剑客之sed命令

选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替换文本中的字符串: 全面替换标记g 保持和获取:h命令和G命令 保持和互换:h命令和x命令 sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 作业: sed命令 sed 简介 Stream

sed命令应用详解

sed应用详解 sed是文本处理处理工具"三大剑客"之一,它 是一种流编辑器,sed一次只处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.sed不会修改原文件内容,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等. 用法:sed [OPTION]

sed命令(1)-基本语法和命令

注:学习sed命令的参考书籍为<Sed&Awk>,所以笔记也都是参考该书. sed命令的基本语法和命令: 一.sed命令语法 sed [options] {sed-commands} {input-file} sed是按每行依次读取input-file,然后执行sed-command,执行完的数据写入模式空间. options是用来传递sed命令的可选参数. 当需要使用多条命令的时候可以使用-e参数,其语法如下: sed [options] -e {sed-command1} -e {

第4章 sed命令

1 sed命令基本用法 sed(stream editor)是流编辑器,可对文本文件和标准输入进行编辑: sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种方法: 重定向.w编辑命令. 2 调用sed有三种方法 在Shell命令行输入命令调用sed,格式为: sed [选项] ‘sed命令’ 输入文件 将sed命令插入脚本文件后,然后通过sed命令调用它,格式为: sed [选项] -f sed脚本文件输入文件 将sed命令插入脚本文件后,