Cassandra 3.0中能否在cqlsh输出中隐藏列标题?
Cassandra 3.0 如何让单条SELECT语句不显示列标题
Cassandra 3.0的cqlsh没有像MySQL -s -N那样直接隐藏列标题的原生选项,但可以通过两种方法实现类似效果:
方法一:命令行用awk过滤结果
如果是在终端直接执行单条查询,可通过管道搭配awk跳过第一行(列标题行),示例命令如下:
cqlsh -e "select count(1) from system_schema.keyspaces where keyspace_name='test'" --no-color | awk 'NR>1'
添加--no-color是为了避免颜色控制字符干扰awk的处理逻辑,NR>1表示只输出行号大于1的内容,直接跳过列标题行。
方法二:交互模式下单独控制单条语句输出
要是在cqlsh交互窗口中执行多条语句,想让其中某条不显示列标题,可以先将该查询的结果捕获到临时文件,再读取文件并跳过第一行:
-- 先执行其他需要显示列标题的查询 select * from system_schema.keyspaces; -- 捕获目标查询结果到临时文件 CAPTURE '/tmp/temp_result.txt'; select count(1) from system_schema.keyspaces where keyspace_name='test'; CAPTURE OFF; -- 读取文件并跳过第一行列标题 !cat /tmp/temp_result.txt | tail -n +2;
这种方式可以在多条语句中单独控制某一条的输出格式。
需要注意的是,Cassandra 3.0的cqlsh确实没有原生的无列标题输出参数,上述方法都是借助命令行工具或cqlsh的捕获功能间接实现需求的。
内容的提问来源于stack exchange,提问作者Dexter
相关产品推荐
相关产品推荐

