示例 :
#文字中含空格及中文。需求為逐行處理資料,插入sql中
$ cat newdata.txt
18632206773 bqex-quanyuwei001 王安琪
18660210976 bqex-sunchenhao001 趙越
18618570937 bqex-zhangping017 張萍
18618570332 bqtianzihui 田子惠
18632207539 bqwangshuang316 蓋鐵真
18618570785 bqwangyip 王亦平
18604053858 bqyangliu291 楊柳
16648180368 bqyunnala855 雲娜拉
18660221105 bqzhangshijin246 張世瑾
#!/bin/bash
cat /dev/null > /home/rebuy/sqlcreate/a.sql
ifs_old=$ifs
ifs=$'\r\n' #如無中文字元,ifs=$'\n' 即可解決空格問題
for i in `cat /home/rebuy/sqlcreate/newdata.txt` ; do
user=`echo $i |awk ''`
phone=`echo $i |awk ''`
cat >> a.sql << eof
update manage_wechat_personal_company_relation set user_nick_name="$user",user_real_name="$user",create_time=create_time where mobile="$phone";
update manage_customer_bind set wxname="$user",create_time=create_time where mobile="$phone";
update sys_ai_user_company set name="$user",create_time=create_time where username="$phone";
update wxf_mission_user_record set user_name="$user",create_time=create_time where user_id="$phone";
eofdone
ifs=$ifs_old
shell指令碼 逐行處理文字檔案
1.通過read命令完成 read命令接收標準輸入,或其他檔案描述符的輸入,得到輸入後,read命令將資料放入乙個標準變數中 利用read讀取檔案時,每次呼叫read命令都會讀取檔案中的 一行 文字 當檔案沒有可讀的行時,read命令將以非零狀態退出 cat data.dat while read ...
Shell指令碼如何逐行處理文字檔案
read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數,用 ifs 內部字段分隔符 變數中的字元作為分隔符。variablename 變數名 引數指定給每乙個欄位的值,由 variablename 變數名 引數指定的以此類推,直到最後乙個字段。read命令接收標準輸入,...
Shell指令碼for迴圈實現逐行處理檔案
主要內容 shell指令碼中的for迴圈實現逐行處理檔案 說到通過shell實現逐行處理檔案,學過shell指令碼的人會告訴你使用while迴圈更適合逐行處理檔案 一般來說,以逐行處理檔案為例,確認while迴圈確認把你for迴圈更加優秀 但是while迴圈中存在乙個弊端 如果指令碼執行機器到目標機...