Linux系统管理-(18)--sed命令

sed

sed: Stream EDitor,行编辑器

格式 :
                  sed [option] ‘[地址][编辑命令]‘

常用选项:
                -n,--quiet:不输出模式中的内容到屏幕
                -e:     多点编辑
                -f:     /path/to/script_file :从指定文件中读取脚本
                -r:支持扩展的正则表达式
                -i:修改源文件

地制定界:
                (1)不给地址:对全文进行处理;
                (2)单地址:
                        #: 指定的行
                        /pattern/: 模式匹配的所有行
                (3)地址范围:
                        #,#   确定行到确定行
                        #,+#  从左侧#表示的行起始,加上右侧#表示的行数;
                        $: 最后一行
                        /pat1/,/pat2/ 模式行到模式行 (第一次匹配)
                        #,/pat1/ 确定行到第一次匹配模式
                (4)~:步进
                        例如 1~2 2~2

编辑命令:
                ##模式空间就是匹配到的行
                d:删除符合行
                p:打印符合行  (d 与 -n ‘ p‘相反效果)
                a \text  :在行后边追加文本,支持使用\n实现多行追加
                i \text  :在行前边插入文本:支持使用\n实现多行插入
                c \text  :替换行为单行或多行(\n)文本
                w  /path/to/somefile: 保存模式空间中的内容保存到指定文件中
                r /path/from/somefile :读取指定文件的文本流至匹配模式中
                =    :为模式空间中的行打印行号;
                !  :取反条件(针对地址范围)
                s /// :替换,支持使用其他分隔符号,[email protected]@@,s###
                    s/要查找的内容/替换为的内容/修饰符
                    
                    修饰符:
                        p: 显示替换成功的行
                        g: 全局替换;默认情况下,每一行只替换第一次
                        &:后向引用
                        w : /path/to/somefile 将替换成功的结果保存至指定文件中

练习1:删除/boot/grub/grub.conf文件中所有以空白开头的行行首的空白字符;
                        ~]# sed ‘[email protected]^[[:space:]]\[email protected]@‘ /etc/grub2.cfg

练习2:删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符;
                        ~]# sed ‘[email protected]^#[[:space:]]\[email protected]@‘ /etc/fstab

练习3:echo一个绝对路径给sed命令,取出其基名;取出其目录名;
                        ~]# echo "/etc/sysconfig/" | sed ‘[email protected][^/]\+/\[email protected]@‘

高级编辑命令:    
                    h:把模式空间中的内容覆盖至保持空间中
                    H:把模式空间中的内容追加到保持空间中
                    g:从保持空间取出数据覆盖模式空间
                    G:从保持空间取出数据追加模式空间
                    x: 模式空间与保持空间内容互换
                    n:读取匹配到的行的下一行覆盖到模式空间  文件中的游标也会随之移动
                    N:读取匹配到的行的下一行追加至模式空间  文件中的游标也会随之移动
                           ##如,n读第一行后马上自动读第二行进行处理,处理完毕游标移动至第三行,

d:删除模式空间中的行
                    D:删除多行模式空间中的所有行

时间: 2024-10-03 10:10:15

Linux系统管理-(18)--sed命令的相关文章

〖Linux〗使用sed命令修改小端(little endian)存储的数据

1 #!/bin/bash - 2 #=============================================================================== 3 # 4 # FILE: hex_change.sh 5 # 6 # USAGE: ./hex_change.sh 7 # 8 # DESCRIPTION: 9 # 10 # OPTIONS: --- 11 # REQUIREMENTS: --- 12 # BUGS: --- 13 # NOTES:

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控

linux shell 用sed命令在文本的行尾或行首添加字符

from:http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“T

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器

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

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

Linux Shell编程 sed命令

概述 sed命令用来选取.替换.删除.新増数据 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器.sed 有许多很好的特性.首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍.其次,因为 sed 是一种流编辑器,所以,它可以对从如管道这样的标准输入中接收的数据进行编辑.因此,无须将要编辑的数据存储在磁盘上的文件中.因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易.sed 主要是用来将数据进行选取.替换

Linux三剑客之sed命令

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

Linux下的sed命令使用详解

sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出. 使用语法sed命令的使用规则是这样的: sed [option] 'command' input_file 其中option是可选的,常用的option有如下几种: -n

Linux中的sed命令

sed - stream editor for filtering and transforming text 流编辑器的过滤和转换文本 sed [-nerf] [动作] 参数: -i 修改源文件 危险 -e 直接在命令行模式上执行sed的动作编辑 -f 直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作 -r :使用扩展的正则表达式 -n 静默模式,默认的sed中所有来自stdin的数据一般都会被列出到屏幕上,但如果加上-n之后,则只有经过sed

linux基础之sed命令

Sed 流 编 辑 器 1.sed的基本用法: sed  [OPTION]...  'script' input-file... 2.sed:Stream   Editor  文本编辑器 行编辑器(全屏编辑器:vi) 3.sed:模式空间 默认不编辑源文件,仅对模式空间中的数据做处理,而后,处理结束后,讲模式空间打印至屏幕 1>.常用选项: -n  : 静默模式,不再默认显示模式空间的内容: -i   : 直接修改源文件: -e  : script   -escript    可以同时执行多个脚