ls -ltr | grep" date | awk' {print $ 2" " $ 3}'"不适用于个位数日

时间:2015-06-03 10:06:36

标签: linux bash shell sh

这是基于链接https://unix.stackexchange.com/questions/10041/how-to-get-only-files-created-after-a-date-with-ls/207251#207251

我找到了下面的ls -ltr代码来列出当前日期的文件。

ls -ltr | grep "date | awk '{print $2" "$3}'"

它在本月10日至31日提供良好的产量。但它不提供本月1日至9日的产量。然后我发现月和日有一个额外的空间,即,这一天是单个数字而不是双倍。

-rw-r--r-- 1 oracle oinstall 11533 Jun 31 22:45 C_1025_2015JUN02.LOG.gz 

:上面的命令工作正常。

-rw-r--r-- 1 oracle oinstall 11533 Jun  3 22:45 C_1025_2015JUN02.LOG.gz 

:上面的命令没有工作,因为除了Linux中的单个空格月份和日期之外还有3个额外空格(缺少一个小数)。

但是当我在$ 2" "内部shell脚本$ 3。我想在shell脚本中有一个永久的解决方案。对于这个空间问题,我是否可以添加任何额外的ls -ltr代码。

1 个答案:

答案 0 :(得分:2)

相反,为什么不尝试find命令。

find /data -mtime -1 |xargs |ls -l | awk '{print $2" "$3}'" | awk '{ total += $5 }; END { print total/1024/1024/1024 }'