AIX命令参考大全,卷 2,d - h - edit 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 2,d - h

edit 命令

用途

给新用户提供一种简单的行编辑器。

语法

edit [ -r ] [ File ... ]

描述

edit 命令启动一个行编辑器,该编辑器是为初级用户设计的,是 ex 编辑器的简化版。edit 编辑器属于一系列包含了 ed 编辑器、ex 编辑器和 vi 编辑器的编辑器族。了解 edit 编辑器可以帮助您学习其它编辑器更高级的功能。要编辑文件的内容,请输入:

edit  File

File 参数指定的是一个存在的文件时,edit 命令将该文件拷贝到缓冲区并显示文件中的行数和字符数。然后它显示 :(冒号)提示符来表明它准备从标准输入中读取子命令。

如果 File 参数中指定的文件尚未存在 edit 命令提示该信息并新建文件。您可以为 File 参数指定一个以上的文件名,在这种情况下 edit 命令将第一个文件拷入缓冲区,并将剩余的文件名储存在变量列表中以备将来使用。如果您不用 w 子命令做出改变的话,edit 编辑器不会改变编辑的文件。

edit 编辑器以下面的两种方式之一进行操作:

命令方式 识别并运行 edit 编辑器的子命令。当您启动 edit 编辑器时,它处于命令方式。要在其它时间进入命令方式,请仅在一行的开头输入 .(句点)。
文本输入方式 允许您往 edit 编辑器缓冲区中输入文本。请使用append (a)子命令、change (c)子命令,或者insert (i)子命令进入文本输入方式。要结束文本输入方式,请仅在一行的开头输入 .(句点)。

标志

-r 在编辑器或系统故障后恢复正在编辑的文件。

文件中的寻址行

edit 编辑器使用下面的三种寻址类型:

行号寻址

行号寻址是利用行号或符号名称在文件找出某一行。这种方法是找到某一行或某些行的最简单方式。

要利用符号名称寻址第一行,请输入:

.

要利用符号名称寻址最后一行,请输入:

$

您也可以通过用逗号或分号将行号或符号地址分开,以此指定某个范围的行。第二个地址必须指向该范围第一个地址行后面的行。

示例:

1,5

寻址第一行到第五行。

.,$

寻址第一行到最后几行。

相对位置寻址

edit 编辑器可以通过某一行与当前行的相对位置找到该行的地址。以-Number或者+Number参数开头的地址分别指向当前行之前第某行或之后第某行。

示例:

+8

寻址当前行之后第 8 行。

您也可以利用符号名称结合 -Number或者 +Number的地址来找到相对于第一行或最后一行的某一行。

示例:

.+3

寻址第一行之后 3 行,以及:

$-10

寻址最后一行之前 10 行。

模式寻址

您可以通过在缓冲区中搜索某个特殊的模式来指定寻址行。edit 编辑器向前或向后搜索,并停止在第一次遇到的、含有与Pattern参数匹配内容的行的地方。如果必要的话,该搜索折回缓冲区的结束或起始位置,直到它找到匹配的对象或是返回到当前行。

要向前搜索,请输入:

/Pattern/

要向后搜索,请输入:

?Pattern?

您也可以将Pattern参数用逗号或者分号来分开,以此指定某个范围内的行。第二个地址必须指向该范围第一个地址行后面的行。

示例:

Pattern,Pattern

当被用作Pattern参数的一部分时,下面的字符具有特殊的意义:

^ 作为Pattern参数的第一个字符时,与行的开始相匹配。
$ 作为Pattern参数的最后一个字符时,与行的结尾相匹配。

使用 edit 编辑器的子命令

edit 编辑器子命令影响 .(句点)所表示的当前行。当您启动 edit 编辑器时,当前行是缓冲区中的最后一行。随着缓冲区被编辑,当前行变为最近一次被子命令所作用的行。为了处理文件的不同部分,您必须知道如何找到当前行以及在文件中如何寻址不同行

您可以利用 edit 编辑器的子命令执行下面的任务:

添加文本

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address]append (a) Text .

如果您没有指定Address参数,请附上您在当前行后面键入的文本。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定了地址,子命令 a 就将文本附加在指定的行之后。如果您指定地址 0,子命令 a 就将文本放置在缓冲区的起始位置。

输入文本,并在每一行的末尾处按 Enter 键。当您输完所有文本时,在行的起始处输入单独的一个 .(句点),以结束文本输入方式并返回命令方式。您可以使用子命令 1,$p 来显示缓冲区中所有的内容。

注:
在安置文本时,子命令 a 和子命令 i 不同。

[Address]insert (i)Text.

如果您不指定参数 Address,则在当前行之前插入文本。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定地址,子命令 i 就在指定的行之前插入文本。您不能指定地址 0。

输入您的文本,并在每一行的末尾按 Enter 键。当输入所有文本后,请仅在一行的开头输入 .(句点),以结束文本输入方式并返回命令方式。您可以使用子命令 1,$p 来显示缓冲区中所有的内容。

注:
在安置文本时,子命令 i 与子命令 a 不同。

改变当前文件的文件名

fileFile 将当前文件的文件名改为参数File所指定的文件名。edit 编辑器不会认为该文件要被编辑。

改变文本

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2]change (c).

Text

如果您不指定参数Address,则用您输入的文本替换当前行。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定地址,子命令c将替换指定的某行或某几行。您可以通过用逗号将地址分开,以指定某个范围的行。

输入您的文本,并在每一行的末尾按 Enter 键。当您输完所有的文本时,在行的起始处输入单独的一个 .(句点),以结束文本输入方式并返回到命令方式。您可以使用子命令 1,$p 来显示缓冲区中的所有内容。最后输入的行成为当前行。

删除文本

在下面的子命令中,参数Address和参数Buffer是可选的。如果您指定地址或缓冲区,请不要输入括弧。您可以使用完整的子命令,或是其缩写(在括弧中显示)。

[Address1,Address2] delete [Buffer] (d) 如果您不指定参数Address,则删除当前行。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定地址,子命令 d 就删除指定的某行或某些行。您可以通过用逗号将地址分开,以指定某个范围的行。最后删除的行之后的行就成为当前行。

如果您用从 a 到 z 的一个小写字母来指定一个缓冲区 edit 编辑器就把指定的几行保存在该缓冲区中。如果您用大写字母指定该缓冲区 edit 编辑器就将这些行添加到该缓冲区中。您可以使用子命令 pu 来将已删除的行放回缓冲区。

显示当前文件名称和状态

在下面的子命令中,您可以使用完整的子命令,或是其缩写(如括弧中所示)。

file (f) 显示当前文件名称以及下面的相关信息:
  • 自从上一个子命令w以来,该文件是否经过修改
  • 当前行号
  • 缓冲区中的行数
  • 指示当前行位置的缓冲区的百分比

显示文本和查找当前行

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2]number (nu) 显示指定在它的缓冲区行号之后的行或几行。如果您没有指定参数Address,子命令nu就显示当前行和行号。

如果您指定了地址,子命令 nu就显示指定的某行或某几行。您可以通过用逗号将地址分开,以指定某个范围的行。所显示的最后一行成为当前行。

[Address1,Address2]print (p) 显示指定的某行或某几行。如果您不指定参数Address,子命令p显示当前行。

如果您指定地址,子命令p就显示指定的某行或某几行。您可以通过用逗号将地址分开,以指定某个范围的行。所显示的最后一行成为当前行。

[Address]= 显示指定行的行号。如果您没有指定参数Address,子命令=显示当前行的行号。
[Address]z 从指定的行开始,显示一屏幕文本。如果没有指定参数Address,子命令z从当前行开始,显示一屏幕文本。
[Address]z- 显示一屏幕文本,并且指定的行位于底部。如果没有指定参数Address,子命令z-就显示一屏幕文本,并且当前行在最底。
[Address]z. 显示一屏幕文本,并且指定的行位于中央。如果没有指定参数Address,子命令z.就显示一屏幕文本,并且当前行位于中央。

编辑其它的文件

在下面的子命令中,您可以使用完整的子命令,或是其缩写(如括弧中所示)。

edit File (e) 在参数File所指定的新文件上开始一个编辑会话。编辑器首先检查自最后一个write (w)子命令以来该缓冲区是否被编辑过。

如果自从最后一个w子命令以来该文件已被编辑,该 edit 编辑器就发出一个警告并取消子命令e。否则 edit 编辑器删除编辑器缓冲区的内容,让指定的文件成为当前文件,并显示新的文件名。

在确保该文件可以被编辑后 edit 编辑器将该文件读入编辑器的缓冲区。如果 edit 编辑器读取文件时未出错,它就显示它所读取的行数和字符数。最后读取的行成为新的当前行。

next (n) 将命令行参数表中指定的下一个文件拷贝到缓冲区中进行编辑。

结束并退出 edit 编辑器

在下面的子命令中,您可以使用完整的子命令,或是其缩写(如括弧中所示)。

quit (q) 在使用子命令write (w)后结束编辑回话。如果您修改了缓冲区并且未将更改写入磁盘,edit 编辑器就显示一条警告消息,并且不结束该编辑回话。
quit! (q!) 结束编辑回话,废弃从最后一个w子命令以来对该缓冲区所做出的任何改变。

进行全局修改

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2]global/Pattern/SubcommandList (g)
给与参数Pattern匹配的指定行做标记。然后 edit 编辑器对标记过的每一行都执行参数SubcommandList中指定的子命令列表。

如果您不指定参数Address,子命令g就作用于当前行。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定了地址,子命令g就作用于指定的某行或某几行。您可以通过用逗号将地址分开,以指定某个范围的行。

单独一条子命令或子命令列表中第一条子命令与子命令g出现在相同的行。剩下的子命令必须出现在不同的行,并且每一行都(除了最后一行)以\ (反斜杠) 结尾。缺省子命令为print (p)

该子命令列表可能包括子命令append (a)、子命令insert (i)和子命令change (c),以及与它们有关的输入。在这种情况下,表示结束的句号如果位于该命令列表的最后一行,就可以省略。

注:
子命令undo (u)和子命令g不能出现在子命令列表中。

移动或拷贝文本

在下面的子命令中,参数Address1和参数Address2是可选的。如果您指定了地址,请不要输入括弧。您必须指定参数Address3。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2]move Address3 (m) 如果您不指定地址或是地址范围,则将当前行移到参数Address3所指定的行之后。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定地址,子命令m就移动指定的一行或几行。您可以通过用逗号将地址分开,以指定某个范围的行。移动的行的第一行成为当前行。

[Address1,Address2]yank [Buffer] (ya) 拷贝指定的一行或几行到 Buffer 中,后者是可选参数,用 a 到 z 间的一个希腊字母来指定。您可以使用子命令 pu 将这些行放置到另外的文件中。
[Address]put [Buffer] (pu) 检索指定的参数 Buffer 的内容,如果您没有指定地址,则将其放置到当前行之后。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址

如果您指定地址,子命令 pu 检索指定缓冲区的内容,并将其放置到指定行之后。如果您没有指定参数 Buffer,子命令 pu 恢复最近一次删除或拷贝的文本。

您可以使用子命令 pu 加上子命令 delete (d) 在文件内部移动行,或者加上子命令 yank (ya) 在文件之间复制行。

在宏的内部,您不能使用子命令 pu 和子命令 ya

在系统崩溃之后保存文件

保存 保存当前编辑器缓冲区,仿佛系统刚刚崩溃一样。当子命令 write (w) 产生错误并且您不知道如何保存您的工作时使用该子命令。请使用子命令 recover 来恢复该文件。
recover File 从系统保存区域中恢复参数 File 所指定的文件。请在系统崩溃或者子命令 preserve 之后使用该子命令。

保存文本

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2]write [File] (w) 如果您没有指定地址,则将缓冲区的所有内容写到参数 File 所指定的文件中。

如果您指定了地址,子命令 w 就将指定的一行或几行写到指定的文件中。您可以通过用逗号将地址分开,以指定某个范围的行。edit 编辑器显示它所写入的行数和字符数。

如果您没有指定文件 edit 编辑器就使用当前的文件名。如果参数File不存在,该编辑器就创建一个。

替换文本

在下面的子命令中,参数Address是可选的。如果您指定了地址,请不要输入括弧。您可以使用完整的子命令,或是其缩写(如括弧中所示)。

[Address1,Address2] substitute/Pattern/Replacement/ (s)


[Address1,Address2] substitute/Pattern/Replacement/g
在每个指定的行上,替换指定的参数Pattern的第一个实例。您可以替换参数Pattern的每一个实例,只需将子命令global (g)添加到子命令s的结束位置。

如果您不指定地址,子命令s就作用于当前行。如果您在缓冲区中的位置不正确,您可能需要查找当前行或者指定地址。如果您指定了地址,子命令s就作用于指定的一行或几行。您可以通过用逗号将地址分开,以指定某个范围的行。

撤销更改

在下面的子命令中,您可以使用完整的子命令,或是其缩写(如括弧中所示)。

undo (u) 撤销最近一个缓冲区编辑子命令对缓冲区的更改。您不能撤销子命令write (w)或子命令edit (e)

注:
子命令global被认为是独立于子命令u的。

相关信息

命令edred、命令ex、命令vivedit

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]