我怎么可以grep同时避免'参数太多“ [英] How can I grep while avoiding 'Too many arguments'

查看:378
本文介绍了我怎么可以grep同时避免'参数太多“的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图清理一些垃圾邮件,并遇到了一个问题。文件的数量在队列中,是如此之大,我平时的命令无法处理。它将给我一个错误有关参数太多。

我通常做这种

 的grep -i user@domain.com 1US * | awk的-F:'{打印$ 1}'| xargs的RM

1US *可以1US [A-ZA-Z]之间的任何东西。我能工作的唯一的事情是运行这个可怕的玩意儿。它的一个文件,用1USa,1USA,1USB等,在整个字母表。我知道自己必须更有效地运行此问题的方法。

 的grep -s $垃圾邮件发送者在/ var / mailcleaner /卷轴/ exim_stage1 /输入/ 1USa * | awk的-F:'{打印$ 1}'| xargs的RM
grep的-s $垃圾邮件发送者在/ var / mailcleaner /卷轴/ exim_stage1 /输入/ 1USA * | awk的-F:'{打印$ 1}'| xargs的RM


解决方案

运行的grep的几个实例。而不是

 的grep -i user@domain.com 1US * | AWK'{...}'| xargs的RM

DO

 (因为我在1US *;不要用grep -li user @ domain的$ I;完成)| xargs的RM

请注意-l标志,因为我们只想匹配的文件名。这都将加快grep的(终止第一场比赛),让您的awk脚本不需要的。这可以通过检查的grep的返回状态,并调用RM,不使用xargs的(xargs的是非常脆弱的,IMO)得到改善。如果你问我会给你更好的版本。

希望它帮助。

I was trying to clean out some spam email and ran into an issue. The amount of files in queue, were so large that my usual command was unable to process. It would give me an error about too many arguments.

I usually do this

grep -i user@domain.com 1US* | awk -F: '{print $1}' | xargs rm

1US* can be anything between 1US[a-zA-Z]. The only thing I could make work was running this horrible contraption. Its one file, with 1USa, 1USA, 1USb etc, through the entire alphabet. I know their has to be a way to run this more efficiently.

grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USa* | awk -F: '{print $1}' | xargs rm
grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USA* | awk -F: '{print $1}' | xargs rm

解决方案

Run several instances of grep. Instead of

grep -i user@domain.com 1US* | awk '{...}' | xargs rm

do

(for i in 1US*; do grep -li user@domain "$i"; done) | xargs rm

Note the -l flag, since we only want the file name of the match. This will both speed up grep (terminate on first match) and makes your awk script unrequired. This could be improved by checking the return status of grep and calling rm, not using xargs (xargs is very fragile, IMO). I'll give you the better version if you ask.

Hope it helps.

这篇关于我怎么可以grep同时避免'参数太多“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆