满足条件时执行管道命令

时间:2015-10-09 20:41:05

标签: linux shell hadoop

hadoop fs -ls $ {DIRECTORY} | sort -k 6 |头-n -120 | awk'{if($ 5 == 0)print $ 8}'| xargs hadoop fs -rm

我正在尝试列出目录中的文件,按时间戳排序,跳过最新的120个文件并删除剩余的零字节文件。当没有零字节文件时,有没有办法可以跳过hadoop fs -rm部分?

或者我可以使用时间戳执行相同的实现(删除在最新文件之前30分钟创建的零字节文件)。

1 个答案:

答案 0 :(得分:0)

你可以在for循环中运行它:

files=`hadoop fs -ls ${DIRECTORY} | sort -k 6 | head -n -120 | awk '{ if ($5 == 0) print $8 }'`
if [ "$files" != "" ]; then echo "$files" |xargs hadoop fs -rm; fi

或许这看起来更好:

((char*)var1) + sizeof(structA)