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 内容如上: 双击 ...
随机推荐
- python中继承和多态
继承和多态 继承 引入继承 我们有这样一个需求 模仿英雄联盟定义两个英雄类 1.英雄要有昵称.攻击力.生命值属性 2.实例化出两个英雄对象 3.英雄之间可以互殴,被殴打的一方掉血,血量小于0则判断为死 ...
- Objective C - 4 - 下载图片并且加载到View
#import "LoadInternetImageViewController.h" @interface LoadInternetImageViewController () ...
- [Math]Pi(1)
数学知识忘地太快,在博客记录一下pi的生成. 100 Decimal places 3.14159265358979323846264338327950288419716939937510582097 ...
- Underscore template
/********************************************************************* * Underscore template * 说明: * ...
- java 输入输出流 关于InputStream 和 OutputSteam 实现文本一行一行读入和 文本一行一行输出
对 byte 有了新的认知:byte表示一个字节 因此他可以表示成 一个 数字: 一个数字可以映射成一个字符:InputStream 中的 read() 函数 的意思是读入一个整数,读入一个整数的 ...
- Python:数据结构(list, tuple, Dict & Set)
list: Python中内置的有序数据结构,即数组.由于Python是动态语言,因此数组元素的类型没有限定. classmates = [“Michael”, “David”,”Bob”,”Trac ...
- appium-java,连接真机启动微信
1.启动appium 2.设置信息 3.设置IP和端口 4.appium连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开TBS内核Insper ...
- HDU2157 How many ways矩阵再识
春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室 ...
- Python3.x time模块
python中,我们会用到很多和时间相关的操作.下面就来看看时间的模块的作用. 使用相应功能需要导入time模块 import time time模块方法: asctime(p_tuple=None) ...
- [BZOJ2115][WC2011]最大XOR和路径
bzoj luogu sol 首先很显然的,答案等于1到n的任意一条路径的异或和与若干个环的异或和的异或和. 因为图是联通的,那么就可以从一个点走到任意一个想要走到的环上,走完这个环后原路返回,那么中 ...