linux命令轻松把单个工具变成批量执行工具

电子说

1.3w人已加入

描述

我们经常遇到这样的业务场景,我们开发了一个线上工具,需要在Linux操作系统下面执行处理某些事情,例如我们开发了一个将用户某个活动数据清0的工具,命令如下:。/clearTools -v 12306,意思是将用户id为12306的使用次数清零。

这里有些同学可能会问,为什么我们需要开发工具,而不是直接从数据库中将次数清0,这是因为在生产环境中,任何一项业务都可能耦合众多业务逻辑,不是简单处理一张表就行,所以我们常常需要开发工具。

有一天,因为一些不知名的原因,反正肯定不是代码的bug,产品给了一批用户的id,需要我们将他们的参与次数重置,可是我们原来的工具只是处理单个用户的,如何快速地将工具改成可以批量执行多个用户呢?

方法一

我们可以修改工具的代码,让其读入一个文件,然后再依次执行,把原有的单个工具改成批量工具。这个方法虽然很好,但是难免显得有些太笨,作为一个极客程序员,这是难以接受的。

方法二

我们写一个shell脚本,在脚本里面读入文件,然后依次执行。这种方法虽然不用修改代码,但是也要写新的代码,虽然比上述方法更加可用,但是还是不够极客。

方法三

使用Linux的xargs命令,xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。

上述的例子,我们只要这么做,cat list.txt | xargs -I {} 。/clearTools -v {} 即可。在这个命令中,对于输出的每一行,都会匹配-I参数后面的花括号,然后将其替换成读入的文件行。

总结

是不是非常的简单,我们只要一行简单的命令行,就可以轻松的把单个工具修改变成批量执行的工具,大大提高了生产效率。怎么样,学会了么?欢迎关注我,我们一起学习共同进步。大家的支持是我继续唠嗑的动力。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分