第4章 sed命令

1 sed命令基本用法

sed(stream editor)是流编辑器,可对文本文件和标准输入进行编辑;

sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种方法:

重定向、w编辑命令。

2 调用sed有三种方法

  • 在Shell命令行输入命令调用sed,格式为:

sed [选项] ‘sed命令’ 输入文件

  • 将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:

sed [选项] -f sed脚本文件输入文件

  • 将sed命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:

./sed脚本文件输入文件

注:第二种方法脚本文件的首行不以#!/bin/sed –f开头;第三种方法脚本文件的首行是#!/bin/sed –f

3 sed命令选项


选项


意义


-n


不打印所有行到标准输出


-e


表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e选项可以省略


-f


表示正在调用sed脚本文件

4 sed文本定位


选项


意义


x


x为指定行号


x,y


指定从x到y的行号范围


/pattern/


查询包含模式的行


/pattern/pattern/


查询包含两个模式的行


/pattern/,x


从与pattern的匹配行到x号行之间的行


x,/pattern/


从x号行到与pattern的匹配行之间的行


x,y!


查询不包括x和y行号的行

5 sed编辑命令


选项


意义


p


打印匹配行


=


打印文件行号


a\


在定位行号之后追加文本信息


i\


在定位行号之前插入文本信息


d


删除定位行


c\


用新文本替换定位文本


s


使用替换模式替换相应模式


r


从另一个文件中读文本


w


将文本写入到一个文件


y


变换字符


q


第一个模式匹配完成后退出


l


显示与八进制ASCII代码等价的控制字符


{}


在定位行执行的命令组


n


读取下一个输入行,用下一个命令处理新的行


h


将模式缓冲区文本拷贝到保持缓冲区


H


将模式缓冲区文本追加到保持缓冲区


x


互换模式缓冲区和保持缓冲区内容


g


将保持缓冲区内容拷贝到模式缓冲区


G


将保持缓冲区内容追加到模式缓冲区

6 示例

6.1 选项示例

只打印第一行

打印包含close关键字的行

调用sed脚本

  • 原始文件

  • 脚本内容

  • 执行结果

6.2 文本定位

sed -n ‘$p‘ input #匹配最后一行

sed -n ‘/close/,$p‘ input #打印与close匹配到最后一行

时间: 2025-01-24 14:44:32

第4章 sed命令的相关文章

linux sed命令(每日一学)

第1章 sed基础 1.1 sed的选项 -r              支持扩展正则 -n              取消默认输出 -i              直接修改不输出到桌面 -i.bak        备份 1.2 sed的书写格式 sed   '条件命令' sed      'pattern命令' sed      '模式命令' 1.3 sed命令执行过程 1.读取文件内容第1行 2.是否满足条件 1).满足条件 执行对应的命令 p  s  d 2).不满足   继续第1步 3.

第四章 shell学习之sed命令和awk编程

sed命令 sed只是对缓冲区中原始文件的副本进行编辑,不改变源文件,所以要保存则要重定向到另一个文件 sed三种方式: 1.sed [选项] 'sed命令' 输入文件 2.sed [选项] -f sed脚本文件 输入文件 3../sed脚本文件 输入文件 其中3的sed脚本文件要以#! bin/sed -f等开头 选项: -n 不打印所有行到标准输出,默认先打印匹配的再打印所有 -e 关联多个sed命令 -f 调用sed脚本文件 定位文本: x x为指定行号 x,y 从x到y行 /patter

linux学习之路之sed命令使用

本章主要介绍sed的命令使用 sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器. sed的工作原理: 逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上.而这种内存空间也叫做模式空间. 所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去. 说明:sed命令默认将文件中所有的行打印到屏幕上去. s

1.10-linux三剑客之sed命令详解及用法

内容: 1.sed命令介绍 2.语法格式,常用功能 查询  增加  替换 批量修改文件名 第1章 sed是什么 字符流编辑器 Stream Editor 第2章 sed功能与版本 处理出文本文件,日志,配置文件等 增加,删除,修改,查询 sed  --version sed  -i 修改文件内容 第3章 语法格式 3.1 语法格式 sed [选项] [sed指令] [输入文件] sed -i.bak 's#oldboy#oldgril#g' oldbboy.txt 先备份在修改 -i   ---

2018-3-27Linux系统管理(15)sed命令

在这一章中开始讲述sed命令的基础用法. 一.阐述 我们此前也讲过,Linux上的文本处理上的三剑客,分别是:    文本处理三剑客:        grep, egrep, fgrep:文本过滤器:        sed:Stream Editor, 流编辑器,行:类似于vim一样的数据流编辑器,但是它是行编辑器.        awk:文本格式化工具,报告生成器: 二.sed模式及命令用法 2.1 sed工作模式及原理 刚才我们也提到过,sed是一个行编辑器,也就意味着sed只能处于一行文本

linux---(6/27)sed命令

sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令.指定文件名,然后在屏幕上查看输出. sed 编辑器没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果.默认情况下,所有的输出行都被打印到屏幕上. sed 工作过程 sed 编辑器逐行处理文件(或输入),并将输出结果发送到屏幕. sed 的命令就是在 vi和 ed/ex 编辑器中见到的那些. 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