Linux行编辑器——ed
实验文件test.txt内容
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin
lp:x:::lp:/var/spool/lpd:/sbin/nologin
sync:x:::sync:/sbin:/bin/sync
shutdown:x:::shutdown:/sbin:/sbin/shutdown
halt:x:::halt:/sbin:/sbin/halt
mail:x:::mail:/var/spool/mail:/sbin/nologin
operator:x:::operator:/root:/sbin/nologin
games:x:::games:/usr/games:/sbin/nologin
ftp:x:::FTP User:/var/ftp:/sbin/nologin
nobody:x:::Nobody:/:/sbin/nologin
systemd-bus-proxy:x:::systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:::systemd Network Management:/:/sbin/nologin
dbus:x:::System message bus:/:/sbin/nologin
polkitd:x:::User for polkitd:/:/sbin/nologin
tss:x:::Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:::Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x::::/var/spool/postfix:/sbin/nologin
chrony:x::::/var/lib/chrony:/sbin/nologin
lfs:x::::/home/lfs:/bin/bash
当使用ed打开文件时,它显示了文件中的字符个数并定位在最后一行。
[root@localhost ~]# ed test.txt
没有提示符。如果输入了ed不理解的命令,它将打印一个问号作为错误消息。可以输入打印命令p来显示当前的行。
[root@localhost ~]# ed test.txt wangyan
?
p
lfs:x::::/home/lfs:/bin/bash
定位到某一行直接输入数字。超过范围时显示 ?
字母d 可以删除当前行。1d就是定位到1行并删除1行
除了实验数字定位某一行,还可以使用正则表达式。/regular/定位到包含regular的行。 /regular/d 定位到指定行并删除那一行,那一行的下一行成为当前行。但是这种删除方法只能删除整个文件自上到下第一次出现regular的行,要想删除所有包含regular的行,使用g/regular/d
ed中的替换指令s
[address]s/pattern/replacement/flag
[address]标记地址的方法就像前面介绍的那样,可以是数字,也可以是真正表达式。
flag 如果是针对一行中首次命中就不写,如果是一行中所有命中就有g
绿色字体字体这种格式仅仅是针对一行,要想匹配所有行需要在最左边加g
例子:
①s/regular/complex/ #用“complex”取代当前行上首次出现的“regular”。由于没有指定地址,所以它只影响当前行上的第一次出现。
②s/regular/complex/g #对于①,如果在当前行上没有找到“regular”则出现一个错误。为了寻找同一行上的多次出现,必须指定g作为标志
③/regular/s/regular/complex/g #与②一样,只是地址不再是当前行而是自上到下包含regular的首行
④g/regular/regular/complex/g #比③范围扩大了,整个文档包含regular的行都执行
对于③④,地址和模式都是使用了正则表达式,这两者可以不一样,例如 g/regular expression/s/regular/complex/g
如果地址和模式相同,可以指定//l来告诉ed。 例如 g/regular/s//complex/g
grep来源于ed中的下面的全局命令:
g/re/p
ed也支持脚本化编辑。把命令单独放在文件中,然后文件作为ed的输入。格式如下:
ed test < ed-script
ed不是面向字符流的,并且文件本身会发生改变。ed脚本必须包含保存文件并退出编辑器的命令。它不产生到达屏幕的输出,但由特殊命令生成的东西除外。在ed中没有指定地址的命令只影响当前行。
对于如下命令
s/regular/complex/
①在ed中交互式地输入这个命令,则用“complex”取代当前行上第一次出现的“regular”。
②在ed脚本中,如果这是脚本中的第一个命令,那么它就只应用于文件的最后一行(ed的默认当前行)。
Linux行编辑器——ed的更多相关文章
- linux常用编辑器
管理员在进行系统操作的时候,不可避免地会对文本进行修改,如进行各种服务程序配置文件的改动,使程序对用户提供不同的服务效果.在本章我们向大家介绍Linux上常见的编辑器ed.vi.emacs,同时以vi ...
- Linux vi 编辑器常见命令的使用
Linux vi 编辑器常见命令的使用 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Win ...
- Vim技能修炼教程(6) - 行编辑器
在很久很久以前,计算机的运算能力还很弱,终端与主机的通信也不好.在没有显示器的时代,只能通过电传打字机跟主机通信.那时候只有行编辑器,编辑的时候只能在一行中进行.需要显示哪一行,就把哪一行或者哪几行打 ...
- Linux系列教程(十)——Linux文本编辑器vim
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
- linux文本编辑器vim大全
linux基础之vim编辑器 1.vim编辑器 基本介绍 vim编辑器的前身叫做vi.vi的英文名:Visual Interface.中文解释文本编辑器,你不应该用他去打开二进制可执行文件 文本编辑 ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
- Linux文本编辑器(九)
[教程主题]:Linux文本编辑器 [1]vi vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任 何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 由于对U ...
- 第一次使用crontab linux选择编辑器问题
第一次使用crontab linux选择编辑器问题 第一次使用crontab 时,会出现no crontab for root - using an empty one“Select a editor ...
- 最优秀的5个Linux文本编辑器
from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ...
随机推荐
- redis配置用户认证密码
1,下载安装 Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redis-3.2. ...
- react——Table组件列中靠左 靠右对齐解决方案
最近项目中遇到一个需求调整:table中的文字过长居左排列,数字居右排列 然后看了一下官方文档: 先上图展示一下 左边是需要的效果: className: 'column-left', { title ...
- (1)、JEasyUI 之 Datagrid的Combobox 显示 textField 值的问题
(1).JEasyUI 之datagrid的Combobox显示textField值的问题 官方的datagrid Demo Row Editing in DataGrid 中field 是否如下定义 ...
- 【MM系列】SAP S/4 HANA的物料编码40位设置
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA的物料编码4 ...
- SQL查询当天、本周、本月记录详解
--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info wh ...
- 不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串
需求:不使用局部变量和for循环或其它循环打印形如:2 4 8 16 16 8 4 2 这样的串 代码MainTest.java package com.szp.study.javase.specia ...
- ant design pro v2 关于用户登录有多个权限的解决方法
ant design pro V2菜单栏显示流程, 用户输入用户名,密码,登录调用登录接口,校验后返回该用户的权限字段currentAuthority,然后通过调用setAuthority(curre ...
- nginx location 优先级
location 顺序/优先级: location = > location 完整路径 > location ^~ 路径 > location ~,~* 正则顺序 > ...
- 工作总结--CTO(张王岩)IO的正式使用
4个抽象类 InputStreawm int read() void close() OutputStream void write(int) void flush() void close() R ...
- vue vue-cli3 修改elementui的date-picker源码 引入node_modules里的element-ui后报错exports is not defined
报错说明: 1.复制node_modules/element-ui/packages/date-picker里的文件到自己项目里 --------->>>>>>& ...