天天看點

《懶人Shell腳本》之六——一鍵構造待采集批量sql語句

《懶人Shell腳本》之六——一鍵構造待采集批量sql語句

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

如果感覺本文對您有幫助,請點選‘頂’支援一下,您的支援是我堅持寫作最大的動力,謝謝!