Java教程

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

本文主要是介绍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

这篇关于shell脚本逐行处理文本,含空格,中文问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!