vim批量在文件每行添加内容以及查询cloudstack模板是否是增量
一.接着上文(更改cloudstack二级存储),从cloud数据库里查出的所有模板名称以及模板位置语句
SELECT tpl.`name`,img.id, img.`url`,tplref.`install_path` FROM vm_template tpl
JOIN template_store_ref tplref ON tpl.`id` = tplref.`template_id`
JOIN image_store img ON img.id = tplref.`store_id`
WHERE tpl.`removed` IS NULL AND tplref.`install_path` IS NOT NULL AND tpl.`type` = 'USER' AND img.`id` =
ORDER BY img.id ASC
二.需求是,上面语句查到每一个模板的所在路径后,需要判断哪些模板是增量。
1.首先我将查询到的路径内容一键复制到一个文本内。文本内容是类似下面这样的,每行。
template/tmpl/2/211/002c10aa-8fae-3600-ba4b-9f153bc85548.qcow2
template/tmpl/2/213/094f409c-6d2d-3e8b-941a-d0c43b52ea99.qcow2
template/tmpl/2/214/61c8f1e2-930c-3453-a762-0ad15f2d5c30.qcow2
template/tmpl/2/215/182c8801-22fd-3c17-bd50-badec418b241.qcow2
template/tmpl/2/216/e94fac61-5a33-398f-938b-4a6802334418.qcow2
template/tmpl/2/217/0cd01d32-bff2-36ef-9744-1588d74cdf62.qcow2
template/tmpl/2/218/cee86725-8419-3e7d-91eb-d1fa1f2d8540.qcow2
2.检验时可以使用qemu-img info 路径去检验,当返回有backing file 字段信息时,说明它是一个增量。
3.我准备将上面的文本文件修改成一个shell脚本,修改成类似下面这样
qemu-img info template/tmpl/2/211/002c10aa-8fae-3600-ba4b-9f153bc85548.qcow2
qemu-img info template/tmpl/2/213/094f409c-6d2d-3e8b-941a-d0c43b52ea99.qcow2
4.问题又来了,如何在这个文件每一行都追加相同的字符呢,如果一个个追加,那累死了,因为有好几百行,不过搜到了vim里的一个命令
:%s/^/word/g
这个命令就是可以在文件每行的行首添加相同的字符,如果有空格或者其它字符的话,记得使用 \ 符号进行转义。根据上面的要求,现在在文本里使用下面的命令即可
:%s/^/qemu-img\ info\ /g
5.现在文件已经修改好了,改个后缀.sh。然后运行。运行时,需要系统里有qemu-img命令,并且可以连接二级存储,然后记得过滤一下。
6.过滤关键字(backing file),然后显示前第五行,在过滤下image字段,最后输出到文本文件中,如下
bash nfs1.sh | grep -B5 backing | grep image > nfs1.txt
现在就达到一开始的要求,得到那些模板是增量的。
vim批量在文件每行添加内容以及查询cloudstack模板是否是增量的更多相关文章
- 使用Perl批量读取文件最后行
使用Perl批量读取文件最后行 面对成百上千个文件,有时我们需要查看它的最后行,单个文件打开将耗费大量时间,而通过Perl提取出最后行,将快速的帮助我们处理繁琐的事务. 特性 整个目录完全遍历,自动提 ...
- Linux查看文件指定行数内容
1.tail date.log 输出文件末尾的内容,默认10行 tail -20 date.log 输出最后20行的内容 tail -n -20 date ...
- php替换文件指定行的内容
//第一种 利用file 函数 读取文件,每一行都是一个数组元素 $arr = file($file); $arr[$line] = "hello"; file_put_conte ...
- 【Sed】使用sed删除文件指定行的内容
sed多看帮助文档,受益良多 sed -i '$d' filename 例如删除 /etc/profile的最后一行 cat -n /etc/profile ... 101 export PA ...
- perl命令批量替换文件内容
转自:http://www.jbxue.com/article/12638.html 使用perl命令批量替换文件内容. 对linux下的文件内容进行替换,有时不用编写perl脚本,用perl命令就可 ...
- Perl 使用perl命令批量替换文件内容
对linux系统下面多个文本文件内容做处理,是SA经常需要完成的工作.如何高效的完成这个工作,perl应该是一个不错的语言工具.你甚至不需要编写perl脚本,用命令就可以完成上面的工作. perl 命 ...
- python3修改文件指定行
方法可以有三个,但其实是一个方法,因为不同的方法都是文件存储的方法,文件修改就只有一个方法: 将文件导入list后,重新写入文件(另一个文件或者当前文件) 1.当前文件读取后,list修改内容,写入另 ...
- bat批量去除文件首行和合并到文件
bat批量去除文件首行 set n=1 :starline for %%j in (*.txt) do ( :3 if exist D:\work\test\new_%n%.txt (set /a n ...
- windows环境下面批量修改文件夹名称
ren 1 A ren 2 B ren 3 C ren 4 D 电脑桌面新建文档 ---> 批量修改文件夹名称.txt 修改文件名称为:--->批量修改文件夹名称.bat 内容如上: 双击 ...
随机推荐
- Android6.0之后的权限机制对App开发的影响
随着Android系统的更新换代,每次重大更新的方面也逐步扩展,从4.*主要是增强功能,到5.*主要是美化界面,到6.*主要提高系统安全性,再到7.*和8.*主要支撑各种大屏设备,因此开发者需要对每个 ...
- CSS样式让元素填充剩余部分为自己的高度或宽度
#nav { background-color: #85d989; width: 100%; height: 50px; } #content { background ...
- python最重要的模块logging
logging模块 这个模块是目前最重要的模块!!!我一定给讲透彻一点 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python中的loggi ...
- php 配置上传大文件
打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关.默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就 ...
- freeradius连接mysql数据库慢
[环境说明] 服务器版本 redHat5.3 mysql版本 MySQL5.6.22 freeradius版本 2.1.12 [问题描述] 配置好freeradiu ...
- 菜鸟夜谈android反编译
工具: apktool:https://code.google.com/p/android-apktool/ dex2jar: https://code.google.com/p/dex2jar/ j ...
- BZOJ4987:Tree (树形DP)
Description 从前有棵树. 找出K个点A1,A2,…,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小. Input 第一行两个正整数n,k,表示数的顶点数和需要 ...
- System.IO.Pipelines来对消息进行Buffer合并
System.IO.Pipelines来对消息进行Buffer合并 https://www.cnblogs.com/smark/p/9927455.html .net core使用Pipelines进 ...
- Core Animation1-简介
一.Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代 ...
- C#中 this关键字 四种用法
/// <summary> /// 主程序入口 /// </summary> /// <param name="args"></param ...