我正在尝试从此Influxdb查询中获取主机列表:
$ influx -database "collectd" -execute "SHOW TAG VALUES WITH KEY=host"
输出类似于:
name: system
key value
------------
host foo.tld
host bar.tld
name: mem
key value
------------
host foo.tld
host bar.tld
...
目前,我正在使用这样的awk
:
$ db-query | awk '/^host/ && !a[$2]++ { print $2 }'
这在使用shell sh
时有效,并且仅返回唯一主机列表,例如:
foo.tld
bar.tld
但是当使用csh
shell时,我收到此错误:
a[: Event not found.
知道如何在sh
和csh
shell中实现此功能吗?
答案 0 :(得分:1)
尝试转义任何/所有!
字符,例如\!
csh
将!
char解释为命令历史记录中的事件。
最常见的"事件"使用的是!!
(上一行)和!$
(上一行的最后一个字),但还有一百万。
我很惊讶你得到了这个错误消息,因为我认为csh尊重单引号。(但显然不是;-))。
IHTH