Provided by: manpages-zh_1.5.1-1_all bug

NAME

       subst - 替换文件中的定义

 (SYNOPSIS)
       subst [ -e editor ] -f substitutions victim ...

 (DESCRIPTION)
       Subst  能够  替换 文件 的 内容, 适用于 针对 本地情况 定制 软件. 它 根据
       substitutions 的 内容, 修改 每一个 victim 文件.

       在 substitutions 文件 中, 每个 替换说明(substitution) 占用 一行. 每一行
       包含  两个域,  用  一个或多个  tab  符  隔开.  第一个 域 是 替换说明 的
       (name), 第二个 域 是 它的  (value).   两者  均不应该  包含  ``#''
       字符;  而使用  文本编计  的  转义符, 如 ``&'' 和 ``\'', 也是 不明智地;
       名字 最好 限制在 字母和数字 中; 以 ``#' 开始 的 行 是 注释, 将被  忽略.

       在  victim  文件  中,  每一个  需要  替换  的  行 () 必须 跟在 -
       (prototype line) 后面. 孕涡 应该 有 这样 的 限制: 将来  其他  程序
       处理 这个文件 的 时候, 它 被视为 注释. 孕涡 必须 包含 目标行 的 "孕",
       该 "孕" 用 ``=()<''  和  ``>()=''  括起来,  这一行  的  其他内容  都被
       忽略掉.   Subst  将 分析 这个孕, 寻找 替换说明 中 名字域 的 所有 实例,
       名字实例 是用 ``@<'' 和 ``>@'' 括起来的, 把 它们 改变成 对应的值,  然后
       用这个 结果 替换 目标行.

 (OPTIONS)
       -e     替换  操作  由  sed(1) 编计 完成, 它 必须 放在 /bin/usr/bin
              目录 下面. 用 ``-e'' 开关 可以 指定 一个 不同位置 的 执行程序.

 (EXAMPLE)
       如果 substitutions 文件内容 是

              FIRST     111
              SECOND    222

       而 victim 文件 是

              x = 2;
              /* =()<y = @<FIRST>@ + @<SECOND>@;>()= */
              y = 88 + 99;
              z = 5;

       那么 ``subst -f substitutions victim'' 命令 把 victim 改变成:

              x = 2;
              /* =()<y = @<FIRST>@ + @<SECOND>@;>()= */
              y = 111 + 222;
              z = 5;

 (FILES)
       victimdir/substtmp.new    建立出来的新版本文件
       victimdir/substtmp.old    竟拿睦习姹疚募

 (SEE ALSO)
       sed(1)

 (DIAGNOSTICS)
       如果 subst 无法 创建 临时文件, 或者 临时文件 已  存在,  程序  中止  并
       报错.

 (HISTORY)
       Henry Spencer 写于 U of Toronto.

       Rich $alz 在 1991 年 7 月 增加了 ``-e'' 选项.

BUGS

       当  创建  准备  用 subst 处理的 文件 时, 很容易 忘记 在 孕涡 后面 插入
       一个 要命的 目标行; 如果 你 忘了  目标行,  subst  最终  会  删掉  孕涡
       下面一行, 不管 那行 是 什么.

[<xuming@users.sourceforge.net>

[2004/02/28

Linuxanhttp://cmpp.linuxforum.net