如何获得以逗号/制表符分隔的hdfs配额输出?

k75qkfdt  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(349)

我使用下面的命令检索hdfs配额,但我不想花哨的输出。相反,我需要将这个输出以逗号或制表符分隔的格式存储。默认情况下,它不是以制表符分隔的。。有人能提出这个建议吗?
命令: hdfs dfs -count -q -h -v /path/to/directory 输出如下:

  1. none inf 250 G 114.9 G 518 2.8 K 45.0 G /new/directory/X

预期产量: none,inf,250 G,114.9 G,518,2.8 K,45.0 G,/new/directory/X

laik7k3q

laik7k3q1#

使用sed怎么样。它们的关键是识别一个唯一的字符串来识别hdfs输出中的分隔符。那可能是tab,因为你说它们是分开的。但是,您发布的示例输出使用了空格。
一旦您决定了一个唯一的字符串,使用sed搜索该唯一的字符串并用逗号替换它。在所有情况下,hdfs输出中的字段分隔似乎只有两个或多个空格,但行和路径的开头除外。也许您可以接受一个前导逗号,并对路径执行第二次sed。
这个堆栈溢出问题涉及替换连续空格。

  1. hdfs dfs -count -q -h -v /path/to/directory | sed -e "s/[[:space:]]\{2,\}/,/g" | sed -e "s/[[:space:]]\//,\//g"

如果它们是选项卡,解决方案就更简单了。

  1. hdfs | sed -e $'s/\t/,/g'

相关问题