以下代码从网站中提取所有域名,并将其从httrack
数据流中设置为$domain
的值。如何将我的bash命令的变量值输入到MySQL中?
domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)')
$域的值看起来像这样...
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循环和一个剪切命令?
是的,这项工作。这个解决方案的问题是httrack数据流非常大,httrack命令可能会在一些网站上运行几个小时和/或几天。有时它永远不会完成。因此,我希望能够实时导入域名。有没有更好的方式来完成我想要的结果? – user3672303
@ user3672303够公平的。你基本上希望插入在每个域上实时发生并且不是批量的,正确的? – JakeGould
是的,这是我正在寻找的解决方案。 – user3672303