以下是根据hadoop 2.6.0我的HDFS的目录结构
/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 ,但它没有显示。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
更改以下行:
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`
解释:您的命令将被执行,但输出不会分配给变量。我建议的更改将执行缺少的部分(将其分配给变量)。