簡體   English   中英

如何將CUT命令的輸出變量傳遞給另一個命令

[英]How can i pipe the ouput variables of CUT command to another command

我想做這樣的事情:

cat files_list | cut -d' ' -f1,3 | mysql -uroot -pxxxx -e "insert into table(var1, var2) values($f1,$f2)"

我怎樣才能做到這一點?

您可以使用以下bash腳本:

while read -a record ; do 
    mysql -uroot -pxxxx -e "insert into table(var1, var2) values(${record[0]}, ${record[2]})"
done  < files_list

但是,這很簡單,但效果不是很好。

如果任務對性能至關重要,我將只構建一個mysql查詢,該查詢一次插入所有行,甚至更好:使用LOAD_DATA_INFILE

還要注意,如果該任務對安全性至關重要,這意味着輸入數據來自不受信任的來源,那么我將完全不使用命令行mysql客戶端。 使用支持MySQL的預備語句的編程語言(如PHP)將是可行的方法。

使用編程語言還有另一個重要的優勢-您不需要通過不安全的命令行來傳遞密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM