csv转json php,“CSV格式转Json格式”Shell脚本解析

#! /bin/bash

# params like:  ./csv2json.sh 0325.txt files/

# $1 -->  0325.txt

# $2 -->  files/

input=$1

outdir=$2

tmpinput=$input"-tmp"

# input line  format

#  5917022397015166,5917032574511010,1000,2017-03-25  00:47:29,17677127609,100191,0,15111,0,,,90109916,0771,59

#  USER_ID,CHARGE_ID,RECV_FEE,RECV_TIME,SERIAL_NUMBER,PAYMENT_ID,PAY_FEE_MODE_CODE,CHANNEL_ID,CANCEL_TAG,

#  CANCEL_CHARGE_ID,CANCEL_TIME,PRODUCT_ID,EPARCHY_CODE,PROVINCE_CODE

#生成一个完整的Json格式文件“0325.txt-tmp”

lineformat="{\"USER_ID\":\"%s\",\"CHARGE_ID\":\"%s\",\"RECV_FEE\":\"%s\",\"OPERA_TIME\":\"%s\",\"SERIAL_NUMBER\":\"%s\",\"PAYMENT_ID\"

:\"%s\",\"PAY_FEE_MODE_CODE\":\"%s\",\"CHANNEL_ID\":\"%s\",\"PRODUCT_ID\":\"%s\",\"EPARCHY_CODE\":\"%s\",\"PROVINCE_CODE\":\"%s\",\"KA

FKA_TYPE\":\"%s\",\"CANCEL_TAG\":\"%s\",\"CANCEL_CHARGE_ID\":\"%s\",\"CANCEL_TIME\":\"%s\"}\n"

cat$input|gawk-v lnformat=$lineformat-v tmpinput=$tmpinput-F',''{

if(NF==14) {

userId=$1;

chargeId=$2;

recvFee=$3;

recvTime=$4;

gsub("  ",":",recvTime);

serialNumber=$5;

paymentId=$6;

payFeeModeCode=$7;

channelId=$8;

cancelTag=$9;

cancelChargeId=$10;

cancelTime=$11;

productId=$12;

eparchyCode=$13;

provinceCode=$14;

gsub("\r","",provinceCode);

kafkaType="1";

printf(lnformat,userId,chargeId,recvFee,recvTime,serialNumber,paymentId,payFeeModeCode,channelId,productId,eparchyCode,provinceC

ode,kafkaType,cancelTag,cancelChargeId,cancelTime)  >> tmpinput;

}

}'

#将Json格式文件“0325.txt-tmp”分隔为每分钟一个文件,输出到“files”目录下

cat$tmpinput|gawk-F','-v outdir=$outdir'{

idx=index($0,"OPERA_TIME");

if(idx>0)

{

time=substr($0,idx+13,19);

gsub(/[-:]/,"",time);

time=substr(time,1,12);

filename="1"time".txt";

filepath=outdir""filename;

print($0)>>filepath;

close(filepath);

}

}'

#删除Json格式文件“0325.txt-tmp”

rm-f$tmpinput

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值