2331321 发表于 2016-11-8 08:54:54

shell导出mysql数据成csv格式

#!/bin/bash
function usage {
       echo "Usage: $0
             -hhost --optional
             -Pport --optional
             -uuser
             -ppassword
             -ddbname
             -ttablename
             -ooutputfile"
}
if [ $# -lt 1 ]
then
   usage
else
   whilegetopts "h:p:u:P:d:t:o:" opt;
   do
      case ${opt} in
      h) host=${OPTARG}
      ;;
      o) outfile=${OPTARG}
      ;;
      P) port=${OPTARG}
      ;;
      u) user=${OPTARG}
      ;;
      p) passwd=${OPTARG}
      ;;
      d) dbname=${OPTARG}
      ;;
      t) tablename=${OPTARG}
      ;;
      esac
      done
fi
host=${host:-localhost}
port=${port:-3306}
MYSQL="mysql -h ${host} -P ${port}-u ${user} -p${passwd} -ANe"
QUERY="SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM information_schema.columns WHERE table_schema = '${dbname}' AND table_name = '${tablename}'"

value=$(${MYSQL} "${QUERY}")
echo "${value}"|awk'{out=""; for (i=4; i<=NF;i++){out=out" "$i};print $1"\t"$2"\t"$3"\t"out}' >>"$outfile".csv
#echo "${value}"|awk'{out=""; for (i=4; i<=NF;i++){out=out" "$i};print $1","$2","$3","out}' >> test1.csv


页: [1]
查看完整版本: shell导出mysql数据成csv格式