【问题标题】:How to get comma/tab separated output of HDFS Quota?如何获得 HDFS Quota 的逗号/制表符分隔输出?
【发布时间】:2020-04-27 18:10:49
【问题描述】:

我正在使用下面的命令来检索 HDFS 配额,但我不想要花哨的输出。相反,我需要将此输出以逗号或制表符分隔的格式存储。默认情况下,它不是一个标签分隔..有人可以建议吗?

命令:

hdfs dfs -count -q -h -v /path/to/directory

输出是这样的:

    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

【问题讨论】:

    标签: linux hadoop hdfs


    【解决方案1】:

    如何使用 sed。他们的关键是识别一个唯一的字符串来识别 hdfs 输出中的分隔符。那可能是制表符,因为您说它们是制表符分隔的。但是,您发布的示例输出使用了空格。

    一旦你决定了一个唯一的字符串,使用 sed 搜索那个唯一的字符串并用逗号替换它。看起来两个或多个空格对于 hdfs 输出中的字段分隔在所有情况下都是唯一的,但行首和路径除外。或许您可以接受一个前导逗号并为路径执行第二遍 sed。

    This Stack Overflow question 涵盖 sed 替换连续空格。

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多