- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ex2做计算常用的批量处理方法1
ex2 做计算常用的批量处理方法1
前面一节大家已经学习了怎么制作文本格式的输入文件。从前面一节的扩展练习,
大家可以猜到:大师兄要教给大家如何对一些参数进行测试了。然而,这一节需要
学习的是在linux 系统下,批量处理任务文件的一个办法。一个好的开始对于大家的
后程发力和高效解决日常任务非常重要。
1 查看文件
首先,教给大家常用的三个linux 命令:ls, cat, grep, 通过这三个命令回顾一下上
一节我们制作的那几个输入文件:INCAR,KPOINTS, POSCAR 和POTCAR
那些文件,在大师兄电脑的 ~/test/vasp/O/ex1 的文件目录下。大家进入自己练习的
目录(通过cd 命令),然后按照图中的命令,先敲一遍,看下输出结果,
详解:
1.1 ls 命令 列出来当前目录下的所有文件和文件夹;本例中没有文件夹;
1.2 cat 后面加上文件名,就可以在输出里面查看该文件的内容,cat 和文件名之
间有空格, 可以是一个,也可以是N 个;
1.3 对于一个大文件来说,里面有很多行,用cat 就不行了,我们可以用grep 这个
命令
1.4 grep 命令用于提取文件中的我们有兴趣的信息。 我们想知道POTCAR 中包含
的元素,用这个命令: grepTIT POTCAR , TIT 就是 POTCAR 中的一个固定的
字符,通过提取这个字符,获取我们需要的结果,这里我们知道了 POTCAR 中含
有O 元素;
通过使用grep ENMAX POTCAR 我们知道了POTCAR 中O 元素的截断能是400
eV ;
1.5 注意,grep 后面提取的字符,最好在文件中是唯一存在的或者只出现几次,否
则我们不容易得到期望的结果; 大家可以运行
grep PBE POTCAR
grep 0 POTCAR
这两个命令,感受下结果;
1.6 查看文件的命令还有 more 和 less,运行less 命令后退出 敲一下 q 键即可;
运行less 后再敲一下v,进入vi 编辑界面,退出时和vi 的退出是一样的;
2 扩展练习 1:
新建10 个文件夹,每个文件夹中的SIGMA 的数值不同,从0.01 , 0.02 ,0.03 ...
0.10 ,其他输入文件与本章中的内容保持一致。
按照图中的命令,自己先敲一遍,感受下效果。
注意:如果出现cp: omitting directory 这样的错误,在cp 后面加上 -r
也就是 cp -r 0.01
大师兄不想挨个创建10 个文件夹,并且挨个编辑INCAR 文件,想必大家都不想这
么做,因此在这里教给大家使用一个for 循环来快速实现我们的目的;
2.1 创建名为0.01 的文件夹: mkdir 0.01;
qli@tekla2:~/test/vasp/O/ex1$mkdir 0.01
2.2 将输入文件移动到0.01 文件夹中:
qli@tekla2:~/test/vasp/O/ex1$mv INCAR KPOINTS POSCAR POTCAR 0.01/
2.3 查看下结果:使用ls 命令
qli@tekla2:~/test/vasp/O/ex1$ls
0.01 (只有一个文件夹,说明文件全部移动进去了)
2.4 for 循环实现我们的效果
qli@tekla2:~/test/vasp/O/ex1$for i in {2..9}; do cp 0.01 0.0$i; done
qli@tekla2:~/test/vasp/O/ex1$ls
0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
详解:
2.4.1 {2..9} 是为了获取从2 到9 的所有数字, 有两点需要注意:
1) 用花括号
2 )2 和9 中间有两个点 .. 两个点之间没有空格,2 ,9 与两个点之间也没用空格
大家可以练习下面这几个命令来看一下效果:
echo {1..100}
echo {A..Z}
echo {a..z}
2.4.2
文档评论(0)