我想在HDFS上打印文件名及其修改日期,hdfs的问题是它不支持ls -l命令,所以当我使用
hdfs dfs -ls /directory_path
这里是示例输出
Found 6 items
drwxr-xr-x - dps12 supergroup 0 2013-08-14 05:10 /data/PSG/LZ/FORECAST/201
drwxr-xr-x - dps12 supergroup 0 2013-08-15 05:13 /data/PSG/LZ/FORECAST/201
drwxr-xr-x - dps12 supergroup 0 2013-08-16 05:15 /data/PSG/LZ/FORECAST/203
drwxr-xr-x - dps12 supergroup 0 2013-07-30 20:32 /data/PSG/LZ/FORECAST/204
drwxr-xr-x - dps12 supergroup 0 2013-07-31 22:54 /data/PSG/LZ/FORECAST/205
drwxr-xr-x - dps12 supergroup 0 2013-08-13 04:15 /data/PSG/LZ/FORECAST/206
我需要的输出是
2013-08-14 /data/PSG/LZ/FORECAST/201
2013-08-15 /data/PSG/LZ/FORECAST/201
2013-08-16 /data/PSG/LZ/FORECAST/203
2013-07-30 /data/PSG/LZ/FORECAST/204
2013-07-31 /data/PSG/LZ/FORECAST/205
2013-08-13 /data/PSG/LZ/FORECAST/206
我知道对于专家来说,这绝对不是一件容易的事情,任何帮助或指示如何实现这一目标都会有很大的帮助..
我想过使用
hdfs dfs -ls /directory_path | while read line ; do $line|awk 'print $4 $6' ; done;
但它不是任何帮助
答案 0 :(得分:4)
请尝试使用awk -
hdfs dfs -ls /directory_path | grep -v 'Found' | awk '{ print $6,$8 }'
grep -v 'Found'
用于忽略开头的Found x items
行。
感谢psny。