0

我正在使用以下命令从文本文件中的域列表中检查 whois 信息,然后将包含电子邮件的任何行输出到新文件:

for i in $(cat testdomains.txt); do whois $i| egrep [a-zA-Z0-9]@[a-zA-Z0-9]\.[a-zA-Z0-9]; done >> results.txt

有没有办法通过一次检查多个域来加快速度?例如,现在它正在从一个域到下一个域检查信息。我可以在命令中更改什么以使其一次检查 50 个域吗?

4

1 回答 1

2

使用&,您可以在后台运行任何命令(因此并行):

for i in $(< testdomains.txt); do
    whois "$i" | egrep '[a-zA-Z0-9]@[a-zA-Z0-9]\.[a-zA-Z0-9]' &
done >> results.txt

笔记

  • 如果您将控制操作符&放在命令的末尾,例如,shell 在子shellcommand args &的后台执行命令。shell 不等待命令完成,返回状态为 0。最后一个后台命令的 Pid 可通过特殊变量获得$!
  • 每个人都在后台&做一个fork(2)
  • 请参阅如何等待多个衍生进程?
于 2013-03-21T21:58:28.060 回答