以下代碼從網站中提取所有域名,並將其從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