如何让SnowSQL查询仅返回结果值,去除版本、表头、统计等无关信息
解决方案
方案1:使用SnowSQL内置输出参数(推荐)
直接通过SnowSQL自带的配置项关闭非必要输出,无需额外文本处理,稳定性最高。调整后的命令如下:
snowsql -u user -w cluster -d db -s public -a "account" -r admin \ --quiet \ -o friendly=false \ -o header=false \ -o output_format=plain \ -o timing=false \ -q "SELECT bucket FROM buckets GROUP BY bucket" | while read bucket_name_var ; do if [ ! -z "$bucket_name_var" ] then # 此处编写你的业务逻辑 fi done
各参数作用说明:
--quiet:禁用启动横幅、退出提示等非必要输出-o friendly=false:关闭交互友好提示信息-o header=false:不输出查询结果的表头行-o output_format=plain:输出纯文本格式,去掉边框、对齐空格等装饰元素-o timing=false:不输出查询耗时、行数统计等底部统计信息
方案2:通过文本过滤工具提取结果
如果不方便调整SnowSQL启动参数,也可以通过awk等文本处理工具从现有输出中过滤结果,示例如下:
snowsql -u user -w cluster -d db -s public -a "account" -r admin -q "SELECT bucket FROM buckets GROUP BY bucket" \ | awk -F'|' '/^\|/ && !/^[|+\-]+$/ {gsub(/^[[:space:]]+|[[:space:]]+$/,"",$2); print $2}' \ | while read bucket_name_var ; do if [ ! -z "$bucket_name_var" ] then # 此处编写你的业务逻辑 fi done
该awk命令逻辑为:匹配以|开头的行,排除边框分割行,提取第二列的值并去掉前后空格后输出。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

