shell指令碼逐行處理文字,含空格,中文問題

2022-09-20 14:15:09 字數 1193 閱讀 3919

示例 :

#文字中含空格及中文。需求為逐行處理資料,插入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迴圈中存在乙個弊端 如果指令碼執行機器到目標機...