在 unix/linux 平台下,首先要学习的就是文本编辑,而 ed 编辑器是 unix/linux 操作系统下最简单、最典型的文本编辑器,因此,学习 ed 编辑器能够帮助你很好的理解一般的文本操作,而且还可以为你以后学习 unix/linux下的一些常用命令(如 grep,sed,...)打下基础。 ed 编辑器是以行为单位对文本进行操作的编辑器,也就是说一次仅能编辑一行,非以全屏的方式来操作,而不像 vi/vim那样是以整个屏幕框架为单位对文本进行编辑。ed 简单、易用,也正是由于其小巧玲珑,许多文本操作者现在仍然偏爱它,使用它。 ### Unix ed 编辑器命令详解 #### 一、引言 在 Unix/Linux 平台上,文本编辑是一项基本且重要的技能。其中,ed 编辑器作为最早出现的行模式编辑器之一,对于理解 Unix/Linux 下的基础文本操作具有重要的意义。尽管现代用户更倾向于使用功能更为强大的 vi 或 vim 编辑器,但掌握 ed 编辑器的基本用法仍然是很有必要的,因为它是很多其他工具(如 sed 和 awk)的基础。 #### 二、ed 编辑器概述 ed 编辑器是一种行模式编辑器,这意味着它不是以全屏显示的方式工作,而是通过命令行来逐行编辑文本文件。与 vi/vim 这样的屏幕编辑器不同,ed 编辑器只关注文本内容本身,不涉及光标移动等复杂的界面操作。这种设计使得 ed 编辑器非常轻量级且易于使用,但也因此牺牲了一部分便利性。 #### 三、ed 编辑器的基本命令 ##### 3.1 启动 ed 编辑器 启动 ed 编辑器的基本命令格式如下: ```bash ed [选项] [文件名] ``` - **选项**:可以使用 -G、-V、-h、-l 和 -p 来控制 ed 的行为。 - `-G`:指定以交互模式运行。 - `-V`:显示版本信息。 - `-h`:显示帮助信息。 - `-l`:将文件的行号重置为 0。 - `-p`:指定搜索模式。 - **文件名**:指定要编辑的文件。如果文件不存在,则会创建一个新文件。 ##### 3.2 命令格式 ed 编辑器的命令格式如下: ```bash [地址[,地址]]命令[参数] ``` - **地址**:指定操作范围,默认为空,表示当前行。 - **命令**:执行的操作,例如插入、删除等。 - **参数**:对命令进行进一步配置的附加信息。 #### 四、地址的使用 在 ed 编辑器中,地址用于指定操作的范围。如果没有指定地址,则默认操作当前行。常见的地址包括: - **.**:当前行。 - **+n**:当前行之后的第 n 行。 - **-n**:当前行之前的第 n 行。 - **$**:文件的最后一行。 - **n**:第 n 行。 - **m,n**:第 m 行到第 n 行之间的所有行。 - **/pattern/**:匹配 pattern 的第一行。 - **/pattern/;**:从当前位置到匹配 pattern 的第一行。 - **n/pattern/**:从第 n 行开始,匹配 pattern 的第一行。 #### 五、常用命令及其用法 ##### 5.1 插入命令 - **a**:在当前行后面插入文本。 - **i**:在当前行前面插入文本。 - **c**:替换指定行的文本。 ##### 5.2 删除命令 - **d**:删除指定的行或行范围。 - **x**:删除指定字符。 ##### 5.3 显示命令 - **p**:打印指定的行或行范围。 - **l**:显示指定的行或行范围,以十进制 ASCII 值的形式展示每个字符。 ##### 5.4 替换命令 - **s/pattern/replacement/**:替换指定的行或行范围中的 pattern 为 replacement。 - **g**:全局替换,替换指定的行或行范围内所有匹配 pattern 的实例。 - **n**:只替换指定的行或行范围内第一次匹配 pattern 的实例。 ##### 5.5 其他命令 - **w**:保存更改。 - **q**:退出编辑器。 - **wq**:保存并退出。 #### 六、正则表达式的使用 ed 编辑器支持使用正则表达式来指定地址和进行替换操作。常用的正则表达式字符类包括: - `[:alpha:]`:等价于 `[a-zA-Z]`,匹配任何字母。 - `[:lower:]`:等价于 `[a-z]`,匹配任何小写字母。 - `[:upper:]`:等价于 `[A-Z]`,匹配任何大写字母。 - `[:digit:]`:等价于 `[0-9]`,匹配任何数字。 - `[:alnum:]`:等价于 `[a-zA-Z0-9]`,匹配任何字母数字字符。 - `[:blank:]`:匹配空格或制表符。 - `[:space:]`:匹配空格、制表符、换行符、回车符等空白字符。 - `[:cntrl:]`:匹配任何 ASCII 控制字符。 - `[:print:]`:匹配任何可打印字符。 - `[:graph:]`:匹配任何可打印字符(不包括空格)。 - `[:punct:]`:匹配任何标点符号。 #### 七、总结 ed 编辑器虽然功能相对简单,但它提供了一种高效、直接的方式来处理文本文件。掌握 ed 编辑器不仅有助于更好地理解 Unix/Linux 下的文本编辑原理,还能为学习其他更高级的文本处理工具打下坚实的基础。通过本文的介绍,希望读者能够对 ed 编辑器有一个全面的认识,并能够在实际工作中灵活运用这些知识。

























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 深圳市地铁龙岗线工程建设项目管理咨询及设计监理服务安装装修策划报告.doc
- 软件测试从业人员的调查报告.doc
- (源码)基于物联网的智能灌溉系统.zip
- 基于Python和Flask框架开发的轻量级数据可视化大屏展示系统-支持多页面切换和实时数据渲染-适用于企业数据监控和业务分析场景-包含数据看板-空气质量监测-计算机性能指标等模块.zip
- 基于PLC控制系统的Z3040型摇臂钻床改造.doc
- 运输企业如何在区块链助力下飞速发展---副本.pptx
- Azure数据与AI架构师手册精华
- (源码)基于React框架的技术实践项目.zip
- (源码)基于Go语言的哆啦助手GPT.zip
- 基于SpringBootVue3MyBatis的家纺用品电子商务平台-包含床品套件-被芯枕芯-窗帘地毯-毛巾浴巾等全品类家纺商品在线销售系统-支持商品分类展示-购物车管理-订单.zip
- 基于Qt的图像识别项目
- (源码)基于STM32U5的USB存储设备管理系统.zip
- (源码)基于LTARK技术的开源电子模块项目.zip
- (源码)基于Vue2框架的前端开发学习项目.zip
- (源码)基于uniapp框架的uniapp2wxpack.zip
- 基于SpringBoot和Vue的全功能社区活动素材管理系统-包含用户注册登录论坛活动公告资讯图片视频素材收藏留言报名个人中心管理后台管理员用户管理素材管理活动管理报名管理论坛管理.zip


