shell脚本逐行处理文本,含空格,中文问题

示例 :

#文本中含空格及中文。需求为逐行处理数据,插入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 '{print $3}'`
PHONE=`echo $i |awk '{print $1}'`

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";
EOF
done
IFS=$IFS_old

上一篇:实体类中字段是名称是排序的,如何快速set


下一篇:EF Core 6 新功能汇总(二)