问题背景: 华为云平台导出 Hive 备份文件为 json 格式, 阅读体验不好, 因此将其转化为 sql 文件.
解决方式: 使用 shell 脚本 + 开源 jq 命令, 批量完成 json文件 转 sql 文件.
jq : 一个轻量级、命令行的 json 处理器, 参考: jq 官方网站
Linux 系统下步骤:
1.下载 jq , 可使用多种方式进行下载: linux: rpm、wget、yum, Mac: homebrew, win: 官网下载 …
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
2.赋予执行权限
mv jq-linux64 /usr/local/bin/jq
chmod +x jq
3.检查 jq 是否安装成功
echo '{"aaa": 0,"bbb":1}' | jq
安装成功则输出:
{
"aaa": 0,
"bbb": 1
}
4.编写 shell 脚本, vi json2sql.sh
#! /bin/bash
JQ_EXEC=`which jq`
for files in `find $1 -name "*.script"`
do
FILE_PATH=$files
SQL_PATH=$(echo "${FILE_PATH/.script/.sql}" )
${JQ_EXEC} -r .content ${FILE_PATH} > ${SQL_PATH}
rm -f ${FILE_PATH}
done
5.将导出的 json 压缩文件上传至 linux 中 /root/scripts/ 并解压, 执行命令
sh json2sql.sh /root/scripts/
至此转换完成, 下载本地阅读即可.
Mac 系统下步骤:
1.homebrew下载: brew install jq
2.验证: echo '{"aaa": 0,"bbb":1}' | jq
3.编写shell脚本,略
4.将导出文件解压至某一目录,执行命令,略
Mac中 遇到问题: 使用 homebrew 下载 jq 时报错
➜ ~ brew install jq
Error: The following directories are not writable by your user:
/usr/local/lib/pkgconfig
You should change the ownership of these directories to your user.
sudo chown -R $(whoami) /usr/local/lib/pkgconfig
And make sure that your user has write permission.
chmod u+w /usr/local/lib/pkgconfig
原因: /usr/local/lib/pkgconfig 权限问题
解决方式: 按照命令中提示依次执行即可.
- 指定该文件拥有者, -R 表示对目录级连赋权操作
sudo chown -R $(whoami) /usr/local/lib/pkgconfig
- 对用户添加写权限
chmod u+w /usr/local/lib/pkgconfig