关于Linux系统中sed编辑器详细讲解

一、sed简介

sed是非交互式的编辑器。它默认不不编辑源文件,仅仅对模式空间中的数据做处理,并将模式空间中的内容显示在屏幕上。sed编辑器是逐行处理文件,并将结果发送到屏幕。具体过程如下:

首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

二、sed基本用法

用法格式: sed [options] ‘ Address command ‘ File

(1)、 常用的options

-n :静默模式,不再默认显示模式空间中的内容

-i : 直接修改原文件

-e script_name -e script_name ...  : 可以同时执行多个脚本

-f  script  file : 使用路径中的脚本处理文件

-r: 表示使用扩展正则表达式

(2)、 常用的address

1,startline ,endline :定义起始行 ,结束行  如: 1,100

2,/ RegEXP/ :模式匹配 可以参考 :grep用法

3,/RegEXP1/,/RegEXP2/ : 从一次被模式1匹配到的行开始,到第一次被模式2 匹配到的行结束,这中间所有的行。

4,Linenumber : 指定要匹配的行

5,$ :表最后一行

6,startline , +n  :表示从starline行开始,向后n行。(总共是n+1行)

(3)、常用的Command

d: 删除符合条件的行

p:显示符合条件的行

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

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

r FILE : 将指定的文件内容添加到符合添加的行处

w FILE : 将指定地址范围内的内容另存到指定的文件中

s /pattern/string/修饰符: 查找并替换,默认只替换第一次被模式匹配到的字符串

修饰符: g: 全局替换

i:忽略字符大小写

三、sed 命令的巩固演示

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

         sed  "s/^[[:space:]]+//g" /etc/grub.conf   

                 

------------------------------------------------------------------------------------------

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

       sed "/^$/ d" /etc/inittab

            
                



---------------------------------------------------------------------------------



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

            sed "s/^#//g" /etc/inittab

   

                



关于Linux系统中sed编辑器详细讲解

时间: 2025-01-06 07:26:45

关于Linux系统中sed编辑器详细讲解的相关文章

Linux系统中vi编辑器的使用方法入门

vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode). 1) 命令行模式command mode) 控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode.  

linux系统中‘find’的详细用法

"find"指令是linux系统下较为常用的指令,它常见的用法我们也需要掌握,下面主要是对'find'指令的常见用法作一下总结,希望能够对其他人有所帮助. 在linux系统下用"ls"指令查看目录如下: 1.find指令的一般格式: find [path...] -options [-print / -ecex / -ok] 其中:path表示要查找的目录路径 ~表示home目录                        .表示当前目录             

Linux系统中sed命令在文件的用法

一.批量在文件某行插入内容: 1 find -type f -name "*.pcf" |xargs sed -i '/aaaa/a\bbbb/' 2 find -type f -name "*.pcf" |xargs sed -i '/aaaa/i\bbbb/' 其中a\表示在包含"aaaa"的行后面一行加入"bbbb";i\表示在前面一行加入. 二.批量替换文件内容: 1 find -type -f -name "

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现

针对Red Hat Enterprise Linux 6.5 的防火墙详细讲解,iptables(netfilter)规则的

防火墙基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或网络层防火墙).基于Linux内核编码实现,具有非常稳定的性能和高效率,因此获得广泛使用. 在Linux系统中,netfilter和iptables都用来指Linux防火墙. netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"(Kernel Space,又称为内核空间)的防火墙功能体系. iptables:指的是

LINUX系统中动态链接库的创建与使用{补充}

大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐.那么,在LINUX系统中有无这样的函数库呢? 答案是肯定的,LINUX的动态链接库不仅有,而且为数不少.在/lib目录下,就有许多以.so作后缀的文件,这

学习Linux系统中命令的简单方法

如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中"一切皆文件"概念虽然说是没有错,是对的.但是个人认为去学习这些"高大上"的东西不是一时半会的事儿,它需要一定的时间和经验去沉淀才能掌握.那么如何最快速了解Linux并使用呢?我依然觉得学命令.背命令,掌握命令是比较笨但却是比较快的方式. 我开始学习Linux的时候,问了前辈:我入门Linux需要掌握哪些命令呢?前

Linux系统中DHCP服务实战

Linux系统中DHCP服务实战部署 一.实验要求 1.将系统的主机名改成s01.benet.com 2.搭建一台dhcp服务器为局域网分配IP地址,要求分配192.168.40.0/24 3.为boss保留192.168.40.188地址 二.实验环境 虚拟机VMware Workstation11.0 RED HET 6.5 三.实验步骤 1.将系统的主机名改成s01.benet.com 2.搭建dhcp服务.为局域网分配IP地址 3.测试主机分配地址效果 4.给boss分配192.168.

LINUX系统中动态链接库的创建与使用

大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐.那么,在LINUX系统中有无这样的函数库呢? 答案是肯定的,LINUX的动态链接库不仅有,而且为数不少.在/lib目录下,就有许多以.so作后缀的文件,这