sed命令拷屏

工作原理
语法格式

工作原理
sed是一个非交互式的流编辑器。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行。整个文件像流水一样被逐行处理然后逐行输出。
下面我们看一下sed的工作过程。
sed不是在原输入上直接进行处理的,而是先将读入的行放到缓冲区中,对缓冲区里的内容进行处理,处理完毕后也不会写回原文件(除非用shell的输出重定向来保存结果),而是直接输出到屏幕上。sed运行过程中维护着两个缓冲区,一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(holding space)”。一般情况下,每当运行sed,sed首先把第一行装入模式空间,进行处理后输出到屏幕,然后将第二行装入模式空间替换掉模式空间里原来的内容,然后进行处理,以此类推。
一般情况下暂存缓冲区是用不到的,但有特殊的命令可以在模式空间与暂存缓冲区之间交换数据,后文将有介绍。由于sed对文本的所有操作都是在缓冲区里进行的,所以不会对原文件造成任何破坏。

语法格式
sed [options] ‘command‘ file(s)
sed [-Options] [‘Commands’] filename
其中command部分格式为[地址1,地址2]命令[参数]
[address-range][sed-command]或
[Pattern-to-match][sed-command]

地址范围可以是一个数字,这个数字代表了一个行号;也可以是一个用逗号分隔的两个数字表示的范围(包括这两行)。范围可以是数字,正则表达式,或是两者的组合。
这里的pattern-to-match也可以看作是一个地址,这个地址是所有与指定模式匹配的行的行号。
command中的命令必须出现,参数根据命令可有可无
sed默认打印每一行
注意,地址范围和sed命令之间没有空格,如果加入空格,sed也会将其忽略。参数-n用来取消默认输出。默认情况下,sed每读入一行到模式空间,无论是否对其进行处理,在读入下一行之前多要将模式空间中的内容输出到屏幕上。参数-n可以用来取消这种默认的输出,只有当用户用命令p时才将指定的行输出到屏幕。如果没有用参数-n而又对指定行执行了p命令,那么这些行将会被打印两次。

时间: 2024-11-08 21:53:47

sed命令拷屏的相关文章

ceph命令拷屏

常用命令 ceph df ceph features ceph fs ls ceph fs status ceph fsid ceph health ceph -s ceph status ceph mgr module ls ceph mgr module enable dashboard ceph mgr services ceph mon feature ls ceph node ls ceph osd crush rule ls ceph osd crush rule dump ceph

命令拷屏之存储信息

磁盘与分区及文件系统 [[email protected] ~]# hdparm -i /dev/sda 查看硬盘参数[[email protected] ~]# fdisk -l 查看所有分区[[email protected] ~]# df -h|column -t 查看各分区使用情况[[email protected] ~]# mount|column -t 查看挂载的分区状态[[email protected] ~]# du -sh /var/log 查看指定目录大小[[email pr

命令拷屏之硬件信息

dmesg cat /proc/cpuinfo,/proc/meminfo,/proc/bus/usb/devices lspci,lsusb,lshal dmidecode [[email protected] ~]# dmesg |wc -l 1079 [[email protected] ~]# dmesg |grep cpu powernow-k8: Found 4 AMD Opteron(TM) Processor 6212 processors (16 cpu cores) (ver

命令拷屏

[[email protected] ~]# yum install rpcbind Installed:  rpcbind.x86_64 0:0.2.0-11.el6Dependency Installed:  libgssglue.x86_64 0:0.1-11.el6                                               libtirpc.x86_64 0:0.2.1-6.el6_5.2[[email protected] network-script

linux学习之路之sed命令使用

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

linux基础之sed命令

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

sed命令用法

注意:Linux三大文本查找工具:grep.sed.awk. sed命令基本用法: Stream EDitor:行编辑器:实现逐行处理文本:而全屏编辑器是vim. 工作特性: 并不处理文本文件本身,而是处理文件内容时,是逐行的把文本加载至内存空间中,在内存中完成处理,然后再输出到屏幕上,对sed而言,内存空间叫模式空间,可对文本行进行模式匹配后再做处理,sed有许多编辑命令. sed命令默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,将模式空间的内容显示至屏幕. sed命令格式

Linux运维文本处理三剑客之sed命令

一· sed简介 与Vi等全屏编辑器不同,sed是一个非交互式的文本编辑器,它可以对文本文件和标准输入进行编辑,    标准输入可以来自键盘.文件重定向.字符串.变量,甚至来自管道的文本.sed是对文本中的行进行    逐行处理. sed只是对缓冲区中原始文件的副本进行编辑,并不编辑源文件.如何需要保存改动的内容,需要将输    出重定向到另一个文件,可以使用下面格式的命令: sed 'sed命令' input-file > result-file 二· sed调用的二种方式: 1.在shell

学习笔记之sed命令使用

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