1

以下代码从网站中提取所有域名并将它们设置为$domain来自httrack数据流的值。

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)')

$domain 的值看起来像这样......

googlesyndication.com facebook.com facebook.com ilovefreestuff.com ilovefreestuff.com facebook.com facebook.com ilovefreestuff.com ilovefreestuff.com peadig.com facebook.net ilovefreestuff.com w3.org ilovefreestuff.com yoast.com ilovefreestuff.com

我有我的数据库设置,这个命令运行良好。

mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($domain)”

我试图将变量中的每个单独的域从一个组合命令行中$domain的数据流动态插入到我的 MySQL 数据库中。httrack所以在我疯狂的脑海里,它应该看起来类似于下面......不幸的是,这不起作用。我没有得到任何输出,只是另一个 bash 提示符。

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)') | mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($domain)"

我不确定如何将$domain变量分割成单独的域,以便我可以为每个 MySQL 数据单元输入一个域,并且我不确定如何将结果通过管道传输到 MySQL,因为该命令是一个数据流。也许我需要一个 for 循环和一个 cut 命令?

4

1 回答 1

1

也许我需要一个 for 循环和一个 cut 命令?

你说的。它不会是单行的,但这应该有效:

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)')

for single_domain in $domain
do
  mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($single_domain)"
done
于 2014-05-25T17:07:39.297 回答