`
yuankai
  • 浏览: 106019 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Vi命令 批量修改文件内容 和 批量建立link文件(Mercurial Repositories配置)

阅读更多
此文章是基于上一篇"从SVN迁移到TortoiseHg Linux"而写的。算是工作笔记!

vi 命令:

: 进入命令模式
%s 批量匹配,单个匹配没有%
\/ 转义 '/'

:%s/.\/hg/b/    //将'.hg'字符转换为 'b'

//将a b c 文件 合并到 d 文件
paste a b c > d

//查找当前目录下 名字为 .hg 的文件
find . -name ".hg"


测试文件内容 (XXX 表示项目名或分支项目)
./XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/.hg
./XXX/.hg
./XXX/.hg

示例:
$:find . -name ".hg"

./XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/XXX/.hg
./XXX/.hg
./XXX/.hg
./XXX/.hg

$:touch a.txt
$:gedit a.txt   //复制上面find后的数据到a.txt
$: cp a.txt b //复制a.txt文件内容到b文件
$:cp b c //复制文件b 到文件c
$:vi b //进入vi命令
:%s/.\// //将所有'./' 转换为空格 注意:(:%s/.\// ) 后面有空格
:%s/\/.hg/ //将所有'/.hg'转换为空格 注意:(:%s/\/.hg/) 后面有空格

$:vi c
:%s/./source
:%s/\/.hg/ //将所有'/.hg'转换为空格 注意:(:%s/\/.hg/) 后面有空格

$:touch d //生成文件d
$:vi d //往d文件中输入 '='(一行一个),输入'='行数与 b或c文件中的行数相同

$:paste c d b >> e //将c d b 文件合并为e文件 c d b 3个文件行必须相同
合并后内容:(source/XXX source是自己定的,这个可以随便填写,web访问时可看到)
source/XXX = XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX = XXX
source/XXX = XX
source/XXX = XXX

$:cp a.txt f //复制a.txt文件到f文件 (在.hg文件下通过shell脚本增加link文件,link到/opt/hg/hgrc文件)
$:vi f
:%s/.\//ln -s \/opt\/hg\/hgrc .\/ //将'./'转换为'ln -s /opt/hg/hgrc ./'
f文件内容:
ln -s /opt/hg/hgrc ./XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/XXX/.hg
ln -s /opt/hg/hgrc ./XXX/.hg
ln -s /opt/hg/hgrc ./XXX/.hg
ln -s /opt/hg/hgrc ./XXX/.hg


$: find . -name "hgrc" //查找当前目录下 名字为 hgrc 的文件

$:bash f //执行 shell脚本文件(f文件为shell脚本文件,生成link文件)

$:cat e >> webdirconf //将e文件内容追加到webdirconf文件中(webdirconf文件为hg配置项目访问路径)
//关闭hg服务
$:killall hg
//启动hg服务
$:hg serve -d -p 7000 --webdir-conf webdirconf
在浏览器中输入:
http://localhost:7000/

/opt/hg/hgrc 文件内容:
[web]
description=project hosted on cloud
push_ssl=false
allow_push=*
style=monoblue
allow_archive=bz2 gz zip

[ui]
username=carlos<pirate.yk@gmail.com>
verbose=True

/opt/hg/webdirconf 文件(合并后)内容:
[paths]
source/XXX = XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX/XXX = XXX/XXX
source/XXX = XXX
source/XXX = XX
source/XXX = XXX
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics