我试图使用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可能会在这种情况下工作过,太。 –