我想在bash脚本中的数组中存储所有hbase表的名称。
全部 sed
可以接受修补程序。
所有更好的解决方案(如 readarray
它从一些Zookeeper文件我不知道)是可以接受的
我有两个hbase表叫做 MY_TABLE_NAME_1
以及 MY_TABLE_NAME_2
,所以我想要的是:
tables = (
MY_TABLE_NAME_1
MY_TABLE_NAME_2
)
我尝试的是:
基于cloudera操作系统脚本中的hbase shell:
echo "list" | /path/to/hbase/bin/hbase shell -n > /home/me/hbase-tables
readarray -t tables < /home/me/hbase-tables
但在我的内心 /home/me/hbase-tables
是:
MY_TABLE_NAME_1
MY_TABLE_NAME_2
2 row(s) in 0.3310 seconds
MY_TABLE_NAME_1
MY_TABLE_NAME_2
1条答案
按热度按时间gv8xihay1#
你可以用
readarray
/mapfile
很好。但要删除重复项/跳过空行并删除不必要的字符串,需要使用awk
.另外,您不需要创建一个临时文件,然后解析该文件,而是直接使用一种称为进程替换的技术,该技术允许命令的输出可用,就像它在临时文件中可用一样
现在数组将只包含
hbase
输出。也就是说,您应该查找解决方案,将噪声作为查询输出的一部分进行消除,而不是以这种方式进行后期处理。