以下是我的 HDFS 目录结构,按照 hadoop 2.6.0
/user/cloudera/output_files/file_date_2016-12-27/outputfile.txt
/user/cloudera/output_files/file_date_2016-12-28/outputfile.txt
/user/cloudera/output_files/file_date_2016-12-29/outputfile.txt
..
我想从父 HDFS 目录中通过其名称获取最大输出目录
OUTPUT_HDFS_DIR=/user/cloudera/output_files
latest_output_dir= hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1
echo $latest_output_dir// This line is printing
latest_date_dir=$(basename "$latest_output_dir")
echo $latest_date_dir//This line is not printin. Getting a empty space.
以上 shell 脚本的输出
[cloudera@client09 scripts]$ bash latest_dir.sh
drwxrwx--- - cloudera cloudera 0 2017-04-19 13:35 /user/cloudera/output_files/file_date_2016-12-29
我期待$ latest_date_dir可以打印,file_date_2016-12-29,但它没有显示这一点。
有人可以帮我解决这个问题吗?
更改以下行:
latest_output_dir= hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1
至:
latest_output_dir=`hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1`
说明:您的命令将被执行,但不会将输出分配给变量。我建议的更改将完成缺失的部分(将其分配给变量)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句