使用Unix命令行模式高效地进行文本编辑

http://tech.ddvip.com   2007年08月29日    社区交流

内容摘要:大多数 UNIX® 开发人员都选择 Emacs、vi 或这两个文本编辑应用程序的众多变种、分支和克隆之一。操作员通常在所选的文本编辑器中打开文件,并交互式地对文件指定和应用更改。

  表 1. AIX cat 中用于输出控制的选项

  选项 描述

  -b 不对空白行编号。

  -e 使用 $ 字符显示行尾。

  -n 从 1 开始对所有输出行编号。

  -q 使用静默操作(禁止错误消息)。

  -r 将所有多个空行替换为单行(“压缩”空白)。

  -S 将多个空白行压缩到单行中(与 -r 相同)。

  -s 禁止错误消息(静默操作)。

  -t 将制表符显示为 ^I。

  -u 不对输出进行缓冲。

  -v 可视地显示非打印控制字符。

  使用 ed 进行编辑

  顾名思义,行编辑器 ed 对输入文件的行执行编辑。它将整个文件读入自己的缓冲区,对该副本执行指定的操作,并可选地将缓冲区写到磁盘。您可以在编辑操作中指定任何数量的行,并且这些操作可以在一个序列中进行组合和指定。这些事实使得 ed 成为在脚本中使用的理想选择。以如下格式指定操作:

  [address]command [text]

  address 指定要处理的一行或多行(缺省为当前行),并且可以通过多种方式进行指定。单字符的 command 是要对指定行执行的操作。对于脚本中的特别单命令行程序,可以使用 echo 将一组命令和文本管道传输给 ed,从而以非交互式的方式使用它。

  ( echo 'OPERATION'; echo 'OPERATION';

  ... echo 'wq' ) | ed -s FILENAME

  如果在操作中输入文本,应该回显一个句点 (.) 来指示输入结束。最后的 wq 写入文件并退出。-s 选项使 ed 静默地操作,并禁止所有正常输出。

  幸运的是,ed 的基本寻址方法和命令是相当标准化的。表 2 描述了主要的寻址形式。表 3 给出了命令。

  表 2. 在 ed 中对行寻址

  选项 描述

  . 此选项对当前行寻址(缺省地址)。

责编:豆豆技术应用

正在加载评论...