windows下使用sed和tee命令

  最近需要在winowds slave上设置构建app和sdk,至于如何在windows slave上构建c/c++代码生成sdk(dll,lib之类)和apk(exe文件),请参考我的另外一篇博客,即https://www.cnblogs.com/zndxall/p/9177866.html,本博客不做介绍。

  有些时候,我们在打包的时候,会需要先修改文件配置,才能打包,比如,测试使用的测试环境验证了,要发布的话,肯定参数要满足正式环境的,这时就需要修改配置文件。

  本博客介绍的是如何使用bat脚本就修改文件内容,即windows下的sed命令,我在查找如何下载sed.exe上花费了不少时间,后面发现我压根不需要去下载sed.exe,因为我已经安装了git bash,查找发现,git bash 的安装目录下就有sed.exe,所以,如果你还在花时间查找如何去下载一个64位或者32位的sed.exe的话,建议直接安装一个git bash就可以了,自带sed.exe,比如我的路径是C:Program FilesGitusrinsed.exe。

  使用也很简单,只要先设定sed.exe所在路径就可以了。比如,我当前目录下有个文件test.txt,文件内容是1234,我想把它改成5678,操作如下:

  set sed="C:Program FilesGitusrinsed.exe"

  %sed% -i s/1234/5678/g test.txt

  即可!

至于其他sed的使用,和linux下是一样的,可以参考linux下的。

  同样,其他命令也一样,比如另外一个tee,我们知道linux的tee作用主要体现在:想把内容输出在控制台的同时有输出到文件中,有的人会说,很简单啊,echo 两次就好了,echo “test” 然后echo "test" > test.log就解决了,内容少的话,这没问题,简单不耗时,但是要是内容多呢,比如一个构建本来就要五分钟了,你还再echo一次,时间太久了,这时tee就很有用了,直接执行构建命令,比如:

  set tee="C:Program FilesGitusrin ee.exe"

  %msbuild% %sln_file% /t:Rebuild /p:Configuration=%type%;Platform=%platform% | %tee% build_log.txt

即可。tee.exe也可以采用同样的办法找到和设置。

  查找过滤文件内容如下:

  more build_log.txt |findstr "个错误"

由于花费了不少时间找满足系统的sed.exe或者其他命令,所以写下这篇博客供大家参考,节省时间。

(其实上面的msbuil命令有自带的日志参数:%msbuild% %sln_file% %command_part% /m:8 /p:Configuration=%type%;Platform=%platform% -flp:logfile=build_log.txt

,/m:8 是表示8个cpu同时工作,提高效率)

原文地址:https://www.cnblogs.com/zndxall/p/9319077.html