2017-04-19 83 views
0

下面是我的HDFS的目錄結構按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腳本

[[email protected] 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

更改下列行:

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` 

說明:您的命令將被執行,但輸出不會被分配給變量。我建議的改變將會完成缺失部分(將其分配給變量)。

+0

您的建議工作,完美 –

相關問題