1

我在 Unix 框中运行以下命令,它是 gfsh 命令:

$GEMFIRE_HOME/bin/gfsh -e "connect --locator=$HOST[22710]" -e "list members" | grep "coordinator"

但是,问题是,如果返回的成员包含超过 100 个字符,那么输出是..针对它们的,如下所示:

locator:103268:locator)<ec><v87><coordinato..

所以grep失败了。我们知道我们可以改变grep模式,但我们只想 grep 特定的协调器。为什么输出线被修剪为..

我搜索了文档,在下面找到。

https://gemfire.docs.pivotal.io/91/geode/tools_modules/gfsh/configuring_gfsh.html

gfsh 命令,例如query生成带有可能会错位并需要手动重新格式化以查看输出的宽列的输出。如果输出不能适应终端的可用宽度,gfsh 会自动修剪列宽以适应。GFSH.TRIMSCRWIDTH您可以通过将 gfsh 环境变量设置为来 禁用此行为false

有什么建议么?

我试图通过 获得唯一的第二个模式awk '|',但协调员仍然是协调员。
也试过了cut,没用。

$GEMFIRE_HOME/bin/gfsh -e "connect --locator=$HOST[22710]" -e "list members" | awk -F'|' '{print $2}'

103268:locator)<ec><v87><coordinato..
$GEMFIRE_HOME/bin/gfsh -e "connect --locator=$HOST[22710]" -e "list members" | awk -F'|' '{print $2}'

应该能够grep“协调器”gfsh的输出并且输出不应该在行..中。

4

1 回答 1

0

如果将以下内容添加到 gfsh 命令中,您应该会看到完整的输出:

-e "set variable --name=APP_RESULT_VIEWER --value=x"

这是一种解决方法 - 该值x是任意的,这只是避免了您看到的默认行为。

于 2019-01-10T17:47:35.187 回答