我试图在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;

但没什么用

最佳答案

请用锥子试试-

hdfs dfs -ls /directory_path | grep -v 'Found' | awk '{ print $6,$8 }'

grep -v 'Found'用于忽略开头的Found x items行。
感谢psny。

08-25 14:34