shell逐行讀取檔案拼接Sql語句並訪問資料庫

2021-07-15 06:34:48 字數 810 閱讀 7199

下面這段**是逐行讀取乙個檔案,這個檔案中每行是乙個id,這段**,每次讀取1000行即1000個id,然後拼接成乙個sql,類似於如下格式的sql:

select * from table where id in (1,2,3,4,....................................1000);

#!/bin/bash

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export path

declare -i index=0

lemmaidstr="("

cat absandbasiclemmaids.o | while read line

doif [ $(expr $index % 1000) = 999 ]; then

echo $lemmaidstr$line")" >> lemmaid.log

mysql -h10.10.10.10 -p3306 -uroot -ppassword -n -e "select lemmaid,contentid from bk.lemma where lemmaid in "$lemmaidstr$line")" >> /data/denglinjie/shell/lemmaidandcontentid.o

lemmaidstr="("

else

lemmaidstr="$lemmaidstr$line,"

filet "index=$index+1"

done

Shell指令碼逐行讀取檔案

方法1 while迴圈中執行效率最高,最常用的方法。while read line doecho line done filename 注釋 這種方式在結束的時候需要執行檔案,就好像是執行完的時候再把檔案讀進去一樣。方法2 管道法 cat filename while read line cat f...

如何用Shell逐行讀取檔案

在學習linux shell scripts時,乙個最常見的錯誤就是用for for line in cat file.txt do 迴圈逐行讀取檔案。下面的例子可以看出這樣做的結果。檔案file.txt內容 cat file.txt this is the row no 1 this is the...

shell 逐行讀取檔案的內容

說明 shell 逐行讀取文字檔案內容。示例 讀取 etc passwd 檔案內容。1 python view plain copy bin bash ifs n 0 forline in cat etc passwd do n expr n 1 echo e n t line done 2 pyt...