当前位置: 首页 > 工具软件 > HShell > 使用案例 >

shell读取csv数据

西门山
2023-12-01

数据格式为: 47602,5000740,8064346,46,女,2019-11-07T23:53:15.000Z,82292084

循环csv数据并请求http的post接口, 我这里使用的是postman工具访问

参数为要读取的文件的全路径

#!/bin/bash

# Only 1 parameter !
if [ $# != 1 ];then
  echo " Usage: .\read.sh filename!";
  exit
fi

# check the file !
if ! [ -f $1 ];then
    echo "file does not exist!"
    exit
elif ! [ -r $1 ];then
    echo "file can not be read !"
    exit
fi

# PRESS ANY KEY TO CONTITUE !
read -p "begin to read $1 "

# set IFS="\n" , read $1 file per line !
IFS="
"

# i is the line number
i=2
for line in `cat $1`
do
    echo line $i:$line
    bkey=`echo $line | cut -d ',' -f1`
    csid=`echo $line | cut -d ',' -f2`
    memberid=`echo $line | cut -d ',' -f3`
    age=`echo $line | cut -d ',' -f4`
    gender=`echo $line | cut -d ',' -f5`
    eventtime=`echo $line | cut -d ',' -f6`
    ordernum=`echo $line | cut -d ',' -f7`

    day=`echo $eventtime | cut -d T -f1`
    time=`echo $eventtime | cut -d T -f2 | cut -d . -f1`
    datetime=$day' '$time
    neweventtime=`date -d "+ 8 hour $datetime" +'%Y-%m-%d %H:%M:%S'`
    echo "event_time "$neweventtime
    data=`echo [{\"event_time\": \"$neweventtime\", \"customer_shop_id\": \"$csid\",\"member_id\": \"$memberid\",\"member_age\": $age,\"member_gender\": \"$gender\",\"ordernum\": $ordernum}]`
    echo $data

    curl -X POST \
    http://localhost:80/visioncenter/crm/v1/memberinfo \
    -H 'Accept: */*' \
    -H 'Accept-Encoding: gzip, deflate' \
    -H 'Authorization: Bearer xxxxxxxxxx' \
    -H 'Cache-Control: no-cache' \
    -H 'Connection: keep-alive' \
    -H 'Content-Length: 205' \
    -H 'Content-Type: application/json' \
    -H 'Host: localhost:80' \
    -H 'Postman-Token: e30393e0-4096-4ded-b290-aa42ce48a8a0,f4ca555b-950d-4f75-af82-3c3ca33a014d' \
    -H 'User-Agent: PostmanRuntime/7.19.0' \
    -H 'cache-control: no-cache' \
    -d $data

    let "i=$i+1"
    echo -e "\n \n" 
done

echo "Finished reading file by line ! "

 类似资料: