首页 > 解决方案 > 如何编写 sed 命令以仅提取“选择”查询并将输出保存到 CSV

问题描述

我需要在 jenkins 中编写一个脚本来从 sql 文件文件中提取“选择”查询,执行查询并将输出保存在 csv 文件中。但我发现第 4 行和第 5 行之间没有关系。有人可以帮忙吗合并这两个命令

dbname=$Database
echo $dbname
echo $PASS
mysql -u root -p$PASS -h alp-uk-stg.cmw7mobxvnye.eu-west-1.rds.amazonaws.com $dbname
sed '/;/G' sql | grep "SELECT" | sed -e :a -e '$!N;s/\n/~/g;ta' | tr "~" "\n"|sed "s/\"/\"\"/g;s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g">output.csv

标签: jenkinssed

解决方案


mysql ... | xargs sed ...

可能是您要的,但没有样本输入和预期输出,这只是猜测。

无论多个 seds+grep+tr 的管道正在做什么,都可以使用单个 awk 脚本更清晰、更健壮、更便携地完成 - 如果您需要帮助,请提出一个新问题。

最后 - 您应该将脚本复制/粘贴到http://shellcheck.net并修复它告诉您的问题,


推荐阅读