总览 (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. Vue-基础(二)

    一,Vue中的组件化开发: Vue中的组件也就是Vue实例 组件类型: 通用组件(例如,表单,弹窗,布局类等) 业务组件(抽奖,机器分类) 页面组件(单页面开发程序的每个页面都是一个组件) 组件开发三 ...

  2. sql优化案例1

    --访客数 ) from ( select v.idvisitor from ods.piwik_log_visit v , , group by v.idvisitor) --优化后的访客数查询 s ...

  3. 如何将自己的代码上传至github

    前提条件: 有个github账号,电脑安装了git; 首先在自己的账号里新建一个仓库: https://github.com/qiqi105/littleAlbum.git 进入到你要上传的文件夹内部 ...

  4. go语言从例子开始之Example14.变参函数

    可变参数函数.可以用任意数量的参数调用.例如,fmt.Println 是一个常见的变参函数. Example: package main import "fmt" //...int ...

  5. leetcode-165周赛-1275-找出井字棋的获胜者

    题目描述: 自己的提交: class Solution: def tictactoe(self, moves: List[List[int]]) -> str: p = [[0] * 3 for ...

  6. boost库:字符串处理

    使用boost库的字符串处理之前,需要进行区域设置.类:std::locale,每个C++程序自动拥有一个此类的实例,不能直接访问全局区域设置. 全局区域设置可以使用类std::locale中的静态函 ...

  7. POJ A Plug for UNIX (最大流 建图)

    Description You are in charge of setting up the press room for the inaugural meeting of the United N ...

  8. AcWing 243. 一个简单的整数问题2 (树状数组)打卡

    题目:https://www.acwing.com/problem/content/244/ 题意:区间加,区间查询 思路:我们把原先那个差分数组分解一下 ∑i=1x∑j=1ib[j]=∑i=1x(x ...

  9. 泰坦尼克号沉没之谜,用数据还原真相——Titanic获救率分析(用pyecharts)

    泰坦尼克号获救率数据分析报告,用数据揭露真相. 一,船上乘客生存率分析报告 泰坦尼克号生存率仅有38%的,可见此次事件救援不力,救生艇严重不足,且泰坦尼克号号撞得是冰山,海水冷,没有救生艇,在水里冻死 ...

  10. 《ArcGIS Runtime SDK for .NET开发笔记》--三维功能

    介绍 在ArcGIS Runtim SDK for .NET 10.2.6中,新添加了三维地图功能.在ArcGIS中,我们将三维地图称为Scene(场景),所以在Runtime SDK SDK for ...