总览 (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     经过改名的老版本文件

最新文章

  1. 使用gulp解决RequireJS项目前端缓存问题(一)
  2. jQuery checkbox的全选与反选
  3. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换
  4. ConcurrentHashMap使用要点
  5. SCAU 1138 代码等式
  6. poj 1236 Network of Schools(连通图入度,出度为0)
  7. CGContext绘图
  8. 使用MySQL数据库将汉字转换成拼音的一个C语言小程序
  9. FreeMarker在JAVA中应用入门
  10. 初步学习vue.js
  11. 【转】Informix数据表结构分析资料整理之约束查询代码
  12. iOS开发之NSOperation &amp; NSOperationQueue
  13. 1. Skippr
  14. jenkins 邮件添加附件
  15. python环境搭建(python2和python3共存)
  16. 20175324 《Java程序设计》第3周学习总结
  17. CentOS配置apache多站点设置
  18. 自windows8以后,所有版本(专业版、企业版、旗舰版)都支持从 vhd 启动
  19. Problem E: 编写函数:Swap (I) (Append Code)
  20. ionic的actionsheet安卓样式不正常的坑及解决之道

热门文章

  1. redis 主从复制+读写分离+哨兵
  2. js 屏蔽网页快捷键代码
  3. elasticsearch Java Client用户指南
  4. sublime text的快捷键
  5. Quartz.Net 任务调度之传递参数(2)
  6. php socket简单原理及实现笔记
  7. 转载:有好多是Elastic官方博客上的内容,具体看文档
  8. security 页面测试
  9. 【JVM】内存区域
  10. Mybatis缓存+配置