hdfs dfs -ls 在路径和文件名上使用通配符
hdfs dfs -ls with wildcard on path and file name
我正在尝试获取某些根目录下的所有文件,其中包含子目录和文件名中的模式。
即
below are hdfs path and files I'd like to filter from current partition/hdfs directories
/parent/2020-03-15/1/sales_28394.txt
/parent/2020-05-20/3/sales_38750.txt
/parent/2020-06-30/5/sales_97412.txt
所以我想使用以下命令(某种程度上)列出上述所有文件以及其他文件
hdfs dfs -ls /parent/*/sales_*.txt
但我找不到可行的解决方案。这有点挑战,因为需要从路径和文件名两个方面考虑模式
您可以使用 find
命令:
hdfs dfs -find /parent -name "sales_*.txt"
请注意 find
仅适用于 v2.7+。您可以阅读更多相关信息 here
如果您使用的是旧版本,您可以将输出通过管道传输到 grep:
hdfs dfs -ls -R -C /parent | grep "sales_.*\.txt$"
-R
用于递归,-C
仅用于文件名。
我正在尝试获取某些根目录下的所有文件,其中包含子目录和文件名中的模式。
即
below are hdfs path and files I'd like to filter from current partition/hdfs directories
/parent/2020-03-15/1/sales_28394.txt
/parent/2020-05-20/3/sales_38750.txt
/parent/2020-06-30/5/sales_97412.txt
所以我想使用以下命令(某种程度上)列出上述所有文件以及其他文件
hdfs dfs -ls /parent/*/sales_*.txt
但我找不到可行的解决方案。这有点挑战,因为需要从路径和文件名两个方面考虑模式
您可以使用 find
命令:
hdfs dfs -find /parent -name "sales_*.txt"
请注意 find
仅适用于 v2.7+。您可以阅读更多相关信息 here
如果您使用的是旧版本,您可以将输出通过管道传输到 grep:
hdfs dfs -ls -R -C /parent | grep "sales_.*\.txt$"
-R
用于递归,-C
仅用于文件名。