关于Linux系统中sed编辑器详细讲解
2014-08-01 22:40
225 查看
关于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
本文出自 “天道酬勤” 博客,请务必保留此出处http://luzhi1024.blog.51cto.com/8845546/1533988
一、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
本文出自 “天道酬勤” 博客,请务必保留此出处http://luzhi1024.blog.51cto.com/8845546/1533988
相关文章推荐
- 关于安装linux系统屏幕刷新率问题的详细介绍
- 关于 Linux系统中关机命令详细解析
- linux系统中UMASK权限的用法详细讲解
- Linux -- 系统在线更新yum与apt-get详细讲解
- 详细讲解 关于Linux静态库和动态库的分析
- 【转】Linux系统Iptables规则执行顺序详细讲解
- 关于 Linux系统中关机命令详细解析
- 关于 Ubuntu 10.10系统(Linux) 安装 Qt Creator 的详细教程 Qt库的编译安装
- 详细讲解 关于Linux静态库和动态库的分析
- 关于Linux文件和文件系统的讲解[mark]
- 详细讲解 Linux系统下Ramdisk的制作过程
- 用DNW工具在ARM-Cortex-A8开发板烧写Linux系统详细讲解
- 关于 Linux系统中关机命令详细解析
- 详细讲解 关于Linux静态库和动态库的分析
- 详细讲解 关于Linux静态库和动态库的分析
- Linux基础入门及系统管理01-shell三剑客之sed命令技巧讲解20
- linux系统中UMASK权限的用法详细讲解
- centos 7 linux系统默认ftp安装配置和部署(详细讲解)
- 关于Linux系统下vim编辑器配置文件vimrc摘选
- win7_64位主机装虚机Linux系统(VMware Workstation10+CentOS6.5)详细步骤图文讲解