为什么 cqlsh 右对齐字符串?
Why does cqlsh right-align strings?
我发现使用 cqlsh 显示的字符串值是右对齐的。是否有一个原因?有没有办法让字符串左对齐?
cqlsh:test> create table test (id int, a ascii, t text, primary key(id));
cqlsh:test> insert into test (id, a, t) values (1, 'ascii', 'text');
cqlsh:test> insert into test (id, a, t) values (2, 'a', 't');
cqlsh:test> select * from test;
id | a | t
----+-------+------
1 | ascii | text
2 | a | t
(2 rows)
我认为这主要是出于审美原因,但是您可以更改它!
cqlsh 只是一个使用 python 驱动程序的 python 文件。你可以简单地在cqlsh的print_formatted_result
方法中修改如下代码:
for row in formatted_values:
line = ' | '.join(col.rjust(w, color=self.color) for (col, w) in zip(row, widths))
self.writeresult(' ' + line)
您可以将 col.rjust 更改为 ljust、center 等,或者只需将其更改为 'col' 即可按原样打印数据。
使用 ljust 的示例:
cqlsh:friends> select * from group_friends;
groupid | friendid | time
--------------------------------------+----------+--------
13814000-1dd2-11b2-8080-808080808080 | 1 | 123456
13814000-1dd2-11b2-8080-808080808080 | 2 | 123456
13814000-1dd2-11b2-8080-808080808080 | 4 | 123456
13814000-1dd2-11b2-8080-808080808080 | 8 | 123456
13814000-1dd2-11b2-8080-808080808080 | 22 | 123456
13814000-1dd2-11b2-8080-808080808080 | 1002 | 123456
尝试使用 shell 的 column
程序来对齐列:
$CASSANDRA_HOME/bin/cqlsh <<EOF | grep -v '+--' | perl -pe 's{[ ]{4,}}{|}g' | column -t -s '|' | tee out.txt
select mycol1,mycol2 from mykeyspace.mytable;
EOF
- 使用此处文档将输入发送至
cqlsh
- 使用您最喜欢的正则表达式工具删除多余的空格(但注意不要在数据中删除它们)
- 使用
column
程序 根据 |
作为分隔符/定界符对齐字段
- (可选)使用
tee
将输出复制到 txt 文件
我发现使用 cqlsh 显示的字符串值是右对齐的。是否有一个原因?有没有办法让字符串左对齐?
cqlsh:test> create table test (id int, a ascii, t text, primary key(id));
cqlsh:test> insert into test (id, a, t) values (1, 'ascii', 'text');
cqlsh:test> insert into test (id, a, t) values (2, 'a', 't');
cqlsh:test> select * from test;
id | a | t
----+-------+------
1 | ascii | text
2 | a | t
(2 rows)
我认为这主要是出于审美原因,但是您可以更改它!
cqlsh 只是一个使用 python 驱动程序的 python 文件。你可以简单地在cqlsh的print_formatted_result
方法中修改如下代码:
for row in formatted_values:
line = ' | '.join(col.rjust(w, color=self.color) for (col, w) in zip(row, widths))
self.writeresult(' ' + line)
您可以将 col.rjust 更改为 ljust、center 等,或者只需将其更改为 'col' 即可按原样打印数据。
使用 ljust 的示例:
cqlsh:friends> select * from group_friends;
groupid | friendid | time
--------------------------------------+----------+--------
13814000-1dd2-11b2-8080-808080808080 | 1 | 123456
13814000-1dd2-11b2-8080-808080808080 | 2 | 123456
13814000-1dd2-11b2-8080-808080808080 | 4 | 123456
13814000-1dd2-11b2-8080-808080808080 | 8 | 123456
13814000-1dd2-11b2-8080-808080808080 | 22 | 123456
13814000-1dd2-11b2-8080-808080808080 | 1002 | 123456
尝试使用 shell 的 column
程序来对齐列:
$CASSANDRA_HOME/bin/cqlsh <<EOF | grep -v '+--' | perl -pe 's{[ ]{4,}}{|}g' | column -t -s '|' | tee out.txt
select mycol1,mycol2 from mykeyspace.mytable;
EOF
- 使用此处文档将输入发送至
cqlsh
- 使用您最喜欢的正则表达式工具删除多余的空格(但注意不要在数据中删除它们)
- 使用
column
程序 根据 - (可选)使用
tee
将输出复制到 txt 文件
|
作为分隔符/定界符对齐字段