如何使用Shell替换文件的部分内容

在Linux上进行开发,经常需要跑一些脚本。比如我要跑tgactivity ,往往需要使用5个UP包,每个跑两遍。如果手动来做十分耗时,于是用sed替换命对UP包进行修改,并循环调用tgactivity命令。

sed命令修改文件的例子

首先,将要替换的UP存入一个数组upArray中,将现在文件中的UP存入oldUp中。

其次,判断文件是否存在,如果不存在打印Log并直接退出脚本。

再次,循环数组upArray,在该循环中首先执行2遍tgactivity,然后将oldUp替换为newUp,并修改oldUp的值为当前的UP。依次循环...

最后,将文件内容恢复原样。这步最初没有做,后来当再次跑该脚本时又需要手动将文件恢复原样,所以一个脚本最基本的要求能够多次执行,并得到一致的结果。

我也考虑过使用vi中的替换命令,单独使用可以生效。不过汇报一个警告:

Vim: Warning: Input is not from a terminal

但是,嵌入到循环之后,会报错:

./soaking.sh: line 29: syntax error: unexpected end of file

这不是fileformate的原因导致的,如果哪位大神知道可以留言给我:

vi命令修改文件的例子

你可能感兴趣的:(如何使用Shell替换文件的部分内容)