Files
kernel_Notes/Zim/Utils/ed.txt
2012-08-08 15:17:56 +08:00

85 lines
5.2 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-04-07T15:50:46+08:00
====== ed ======
Created Thursday 07 April 2011
ed是unix系统的标准编辑器最初由Ken Thompson 编写起源与qed。
ed为匹配模式提供了正则表达式基于ed的正则表达式渗透到了整个UNIX系统grep和sed使用的正则表达式几乎与ed相同
egrepawkex扩展了ed的正则表达式shell的文件名匹配语法虽然与正则表达式不同但基本思想是相同的。
ed提供命令来操纵连续的行和与模式匹配的行并在这些行上进行修改。
每个ed命令都是但字符多数命令前面可以加一到两个行号否则使用缺省的行号。行号的说明可以用其在文件中的绝对位置指定
其他特殊的行号有:$代表最后一行,.表示当前行,或采用正则表达式搜索到的下一行,以及所有这些行号的组合。
行号可以与+-符号组合起来使用,当单独使用+-时是相对与当前行的。
用**单独的逗号**表示行号行时,其含义是整个文档。
ed能记住上次使用的模式所以可以用//或??来重复搜索,且模式搜索都会回绕。
ed记录了最后操作所在的行如最后显示的行添加文本或修改文本或读一个文件后新内容的最后一行这一行用.标记,成为当前行。
每个命令都可以对.有一个定义,通常是将其设置为该命令影响的最后一行。
替换命令s用于将某个字符串替换为另一个字符串除非跟着命令g否着只有行中最左边出现的模式被替换。s命令本身并不显示被修改的行
除非在后面使用p事实上大多数的ed命令都实在默默的工作但几乎任何命令后都可以用p显示命令影响后行的结果。
可以用u命令取消最进的替换但.必须设置为被替换的行。
当在ed中的某些字符出现在一个搜索模式或s命令的左边时也具有特殊含义这些字符被称为元字符而使用它们的模式被称为正则表达式。
包含*的正则表达式匹配最左边最长的串。
全局命令g和v适合有正则表达式选择的多行的一个或多个其它命令g命令最常用于多行的显示替换或删除。
m.ng/regrep/command
m,nv/regrep/commands
gv命令前可以冠以行号来限定范围缺省为1$
g/.../命令 对所有匹配正则表达式的行执行命令。
m,n m d 把第m行到n行的内容移到地d行之后
m,n t d
用于移动和复制的命令的m、d命令的目标行不能落在m~n-1之内如果没有指定源文本行这默认使用当前行。
命令=显示最后一行的行号, .= 显示当前行号,显示后当前行不改变。
k命令用于标记行标记适合用于文本的大块移动。
行可以通过j命令连接起来(没有附加的空格)。
nr filename 读文件并将其添加到行n后把当前行设置为读取 内容的最后一行
m,nw filename 把行m到n的内容写到文件中不改变当前行
m,n W filename 。。。。。添加到。。。。。
w,W命令的缺省范围是整个文件r是最后一行。
ed记得使用的第一个文件名该名可以用命令行中取得或者用r或w命令取得命令f显示或改变被记住的文件名。
f 显示被记住的文件名
f filename 设置被记住的文件名。
命令e用记住的文件或新的文件来重新设置ed
e 开始重新编辑被记住的文件
e filename 开始编辑文件
e命令的保护方式同q命令如果缓冲区没有被保存第一次e将引起一个错误信息。
命令一览表
命令 含义
.a 增加文本,自导一个只包含.的行为止
.,.c 改变行新文本的结束方式同a
.,.d 删除行
e filename 用文件重新初始化ed若filename省略则ed用记住的文件名初始化
f filename 设置记忆文件
1,$g/正则表达式/命令 对每个匹配正则表达式的行执行命令
.i 在行前插入文本结束方式同a
.,.+1j 把多行连成一行
.kc 用字母c设置行biaoji
.,.l 显示行,把不可见字符标记为可见
.,.m 行号 把当前行移到指定行后
.,.p 显示行
P 在以后的命令模式下显示提示符星号
q 退出若缓冲区为修改则给出提示再一次q时立即退出Q 为不保存改变而退出,
$r filename 读文件
.,.s/正则表达式/新表达式字符串/ 把任何与正则表达式匹配的内容替换为新表达式
.,.t 行号 把当前行复制到指定的行后
.u 取消行中的上一次改变
1,$v/正则表达式/命令 在每个不语正则表达式匹配的行上执行命令
1,$w filename 把所有行写到文件中W为添加到文件末尾
x 进入加密模式
!command-line 执行命令而不退出ed
(.+1) 回车 显示下一行内容
n 显示绝对行号的内容n=0,1,2...
. 当前行行号,或显示当前行的内容
$ 最后一行行号或显示最后一行内容
/正则表达式/ 与正则表达式匹配的下一行,当在$时回绕的奥第一行开始
?正则表达式? 与上相反
`c 跳到标记为c的行
n1+n2 跳到n1+n2的行
N1N2 行N1到N2
N1N2 把当前行设为N1然后跳到N2