![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CMxITZ4MWZ0ADOhRGNhdTOhJDZ0IDOidjZ1AzNiZmZ58CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
2、實作步驟
步驟1:人工實作Excel表格配置。
定義好唯一索引,如第一列的序号。好處:
1)序号可以成為mysql中的索引。
2)序号規定後,可以實作分布式,1個人4個小時。真正可以實作4個人1小時完成任務。(真正的分布式)
這點,非常重要。
關于索引,實踐表明,對于每個網站入口唯一值的定義unique索引,能更進一步防止沖突,確定唯一。
步驟2:将表格存入到txt中。
在linux環境下,進行dos2unix格式轉換,確定utf-8編碼,確定沒有亂碼。
步驟3:腳本實作一鍵構造sql語句。
3、腳本源碼
#!/bin/sh
P2P_CONFIG_FILE=./base_config.txt
ONE_LINE=./output/config_line.txt
#read line by line
cat $P2P_CONFIG_FILE | while read line
do
mkdir -p ./output
echo $line > $ONE_LINE;
#echo line=$line
id_01=`cat $ONE_LINE | awk -F " " '{ print $1 }'`;
name_02=`cat $ONE_LINE | awk -F " " '{ print $2 }'`;
url_03=`cat $ONE_LINE | awk -F " " '{ print $3 }'`;
lstcharset_04=`cat $ONE_LINE | awk -F " " '{ print $4 }'`;
concharset_05=`cat $ONE_LINE | awk -F " " '{ print $5 }'`;
notice_url_06=`cat $ONE_LINE | awk -F " " '{ print $6 }'`
titleXpath_07=`cat $ONE_LINE | awk -F " " '{ print $7 }'`
timeXpath_08=`cat $ONE_LINE | awk -F " " '{ print $8 }'`
contentXpath_09=`cat $ONE_LINE | awk -F " " '{ print $9 }'`
touch ./tmp.txt
echo $titleXpath_07 >> ./tmp.txt
sed -i "s#\"#\\\'#g" ./tmp.txt
titleXpath_07=`cat ./tmp.txt`
#echo $id_01
#echo $name_02
#echo $url_03
echo "INSERT INTO test.mdia_config (id, source_name, entry_url, list_charset, content_charset, channel_id, media_class, site_id, class_id, list_xpath, title_xpath, publish_time_xpath, content_xpath, click_count_xpath, comment_count_xpath, repost_count_xpath, list_js_enabled, content_js_enabled, last_deliver_time, deliver_period, weight, proxy_gather, delete_flag) VALUES ('$id_01', '$name_02', '$notice_url_06', '$lstcharset_04', '$concharset_05', '1', '1', '$id_01', '1', '[\"$titleXpath_07\"]', '', '$timeXpath_08', '$contentXpath_09', '', '', '', '0', '0', '2016-11-19 05:02:11', '600', '0', '0', '0');"
rm -f $ONE_LINE
rm -f ./tmp.txt
done;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
注意點:
1)、逐行讀取;
2)、對于每一列的讀取,采取了循環存儲臨時檔案,然後循環删除的方法。(2年前跟同僚學的,非常湊效)
3)、注意sql中對單引号、雙引号的提前處理,確定sql語句合法。這點,可以去navicate裡面去驗證sql語句。
4、小結
能夠腳本實作提高效率的,堅決不用手動敲入。
是的,就是簡單的幾行,也要寫個循環。效率見于平時,效率見于細節。
作者:銘毅天下
轉載請标明出處,原文位址:
http://blog.csdn.net/laoyang360/article/details/53236018如果感覺本文對您有幫助,請點選‘頂’支援一下,您的支援是我堅持寫作最大的動力,謝謝!