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

subst - 替换文件中的定义的更多相关文章

  1. linux 小技巧(查找替换文件中的ascii编码字符)

    这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...

  2. 用python 替换文件中的git地址

    有个需求要替换文件中git地址,要替换成的git地址是一个变量 本来想用sed替换但是git地址中有斜杠符号 需要转义,提前知道还好弄,如果是变量就不好处理了 #!/usr/bin/python3 # ...

  3. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

  4. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  5. linux shell 脚本获取和替换文件中特定内容

    1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...

  6. shell 脚本替换文件中某个字符串

    1.将当前目录下包含jack串的文件中,jack字符串替换为tom sed -i "s/jack/tom/g" `grep "jack" -rl ./` 2.将 ...

  7. grep和sed替换文件中的字符串

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

  8. shell脚本替换文件中字符

    1.将当前目录下包含jack串的文件中,jack字符串替换为tom sed -i "s/jack/tom/g" `grep "jack" -rl ./` 2.将 ...

  9. python 之文本搜索与替换文件中的文本

    #!/usr/local/env python import os, sys nargs = len(sys.argv) if not 3 <= nargs <= 5: print &qu ...

随机推荐

  1. NULL合并操作符??

    参考官方手册: /** * NULL合并操作符 ?? */ // $a, $b, $c都未声明和定义 var_dump($a??$b??$c); // NULL // $a为数组,$b为100,$c为 ...

  2. 深入Spring:自定义IOC

    前言 上一篇文章讲了如何自定义注解,注解的加载和使用,这篇讲一下Spring的IOC过程,并通过自定义注解来实现IOC. 自定义注解 还是先看一下个最简单的例子,源码同样放在了Github. 先定义自 ...

  3. EBCDIC 1025 俄语

    https://en.wikipedia.org/wiki/EBCDIC_1025 EBCDIC 1025   _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E ...

  4. python数字图像处理(一)图像的常见操作

    首先导入必要的库,使用Opencv读入图像,避免复杂的图像解析,同时使用Opencv作为算法的对比,由于使用环境为jupyter使用matplotlib直接可视化 import cv2 import ...

  5. 【Kickstart】2017 Round (Practice ~ G)

    Practice Round Problem A Country Leader (4pt/7pt) Problem B Vote (5pt/8pt) Problem C Sherlock and Pa ...

  6. oracle client 卸载

    1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止 2.在开始菜单中,找到Universal Installer,运行Oracle Universal I ...

  7. 1、selenium 8大元素定位方式

    元素定位方式: id name css class_name tag_name partial_link link_text : driver. find_element_by_link_text(& ...

  8. ubuntu oracle数据库18c安装

    一.官网下载linux两个zip包 二.byqKx8a2tWcgBHb

  9. Electron-vue实战(一)—搭建项目与安装Element UI

    Electron-vue实战—搭建项目与安装Element UI 作者:狐狸家的鱼 本文链接 GitHub:sueRimn 一.新建项目1.初始化项目打开cmd,新建一个项目,我使用的是electro ...

  10. Laravel 事务中使用悲观锁

    laravel 提供了方便快捷的数据库事务使用方式,在使用中遇到过几个容易混淆和被误导的地方,这里做个记录,希望哪里写的不对的地方各位大神指点一下 laravel 事务分为手动方式和自动方式. 但如果 ...