我試圖使用GNU並行執行多個LOAD DATA LOCAL INFILE MySQL的命令,其中:GNU平行MySQL的LOAD DATA LOCAL INFILE
{1}
是文件的,我從UNIX find命令管道獲取名稱{2}
是chop.pl
腳本,按照一定的規則
看來,我打電話GNU平行正確的方法,但它01從文件字符串打印出一定的令牌結果不會在 -e
之後的mysql命令周圍保留雙引號,並且導致它不起作用。
E.g.
find /my/folder/ -name "*.txt" | while read i; do chop.pl $i; echo $i; done | parallel -t -N 2 mysql -h localhost -uuser -pxxxxxxx --local-infile=1 -D dbname -e "LOAD DATA LOCAL INFILE '{2}' IGNORE INTO TABLE tblname IGNORE 1 LINES (col1,col2,col3,col4) set col5='{1}', col6='foo'"
它正在嘗試,缺乏雙引號的命令-e
後,就像這樣:
mysql -h localhost -uuser -pxxxxxxx --local-infile=1 -D dbname -e LOAD DATA LOCAL INFILE '/my/file/name/yadda_yadda-12345678.txt' IGNORE INTO TABLE tblname IGNORE 1 LINES (col1,col2,col3,col4) set col5='yadda_yadda', col6='foo'
任何想法如何在-e
後加回雙引號?
-q可能會在這種情況下工作過,太。 –