An XARGS question
Bill Rugolsky Jr.
brugolsky at telemetry-investments.com
Tue Jul 18 21:07:17 UTC 2006
On Tue, Jul 18, 2006 at 02:31:52PM -0500, Michael Yep wrote:
> Hello
>
> Is there a way to have xargs or perhaps another tool take a list from
> stdin and put it somewhere besides the last argument?
>
> Say if i want to get all the offending IPs (bad logins) for a given day
> then i want to take that list and see if its in a file called blacklist
>
> lastb -ai |fgrep "Jul 18" |awk '{print $10 }'|sort|uniq | xargs grep ???
> blacklist
>
> where ??? would be where the stdin goes
Others have directed you toward "xargs -i", which is correct,
but in this particular example, you can do something simpler,
lastb -ai |fgrep "Jul 18" |awk '{print $10 }'|sort|uniq \
|fgrep -x -f - blacklist
where "-f -" reads the list of patterns from standard input, and
"-x" matches the whole line, to eliminate false hits. Under other
circumstances, "-w" might be appropriate.
This has the virtue of invoking fgrep once and processing all addresses
in parallel.
Regards,
Bill Rugolsky
More information about the fedora-list
mailing list