linux - Hadoop - 列出 HDFS 目录中的所有子目录并将每个目录路径保存到 bash 变量中

标签 linux bash hadoop awk hdfs

假设我有一个名为 myDirectory 的 HDFS 目录,其中包含可变数量的子目录,如下所示:

/tmp
     |___mainDirectory
            |___ subDirectory1
            |___ subDirectory2
            .
            .
            |___ subDirectoryN

如何将主目录中每个子目录的路径捕获为 bash 变量?

例如,在上述情况下,我最终会得到 N 个 bash 变量,其中每个变量看起来像这样:

var_1=/tmp/mainDirectory/subDirectory1
var_2=/tmp/mainDirectory/subDirectory2

..etc

到目前为止,在执行 hadoop fs -ls/tmp/mainDirectory

之后,我一直在 awk 包含目录路径的列
$hadoop fs -ls /tmp/mainDirectory | awk '{print $8}'
/tmp/mainDirectory/subDirectory1
/tmp/mainDirectory/subDirectory2
.
.
/tmp/mainDirectory/subDirectoryN

但是,我无法将各个目录路径捕获到单独的 bash 变量中。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

如果你能得到结果:

$hadoop fs -ls /tmp/mainDirectory | awk '{print $8}'
/tmp/mainDirectory/subDirectory1
/tmp/mainDirectory/subDirectory2
.
.
/tmp/mainDirectory/subDirectoryN

您可以使用命令将它们分配给 bash 变量,

$ declare $(hadoop fs -ls /tmp/mainDirectory | awk '{print "var_"NR"="$8}')

关于linux - Hadoop - 列出 HDFS 目录中的所有子目录并将每个目录路径保存到 bash 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45292871/

相关文章:

apache - 如何在Hbase Shell中编写CheckAndPut操作?

在 PySpark 中使用 collect_list 时 Java 内存不足

linux - 在 ubuntu 15.04 上安装 Oprofile - 在/usr/bin 中找不到二进制文件

linux - 如何在当前文件夹和所有子文件夹中的所有文件中搜索特定文件内容

linux - 当命令使用 EOF 变量时删除 BASH 中命令的输出

bash - 将文件移动到 zip 中的批处理脚本

hadoop - 创建比我们拥有的节点更多的 reducer 是否有意义?

linux - 需要一些关于 NASM 循环的建议

java - 使用Java程序设置/创建环境变量,该变量在Linux中执行程序后仍然存在

linux - Bash - 运行 grep 返回的命令