以下代码从网站中提取所有域名,并将其设置为$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
数据流中动态地将变量httrack
中的每个域插入到我的MySQL数据库中。因此,在我的疯狂思想中它应该看起来类似于下面...不幸的是这不起作用。我没有输出,只是另一个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命令?
答案 0 :(得分: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