具有最新时间戳的Unix进程文件

时间:2013-04-29 10:46:01

标签: file unix feed timestamp

我正在制作一个将数据加载到表中的程序。我已经创建了这个程序。 但是我在处理文件时遇到问题,因为目录中有多个文件有不同的时间戳。

我想问一下检测Feed的LATEST时间戳的代码是什么,然后选择那个。

例如,Feed的名称为PRODUCTS_I03_20130429.dat 其中“PRODUCTS_I03”只是Feed的名称。

我只想通过时间戳检测最新的Feed。

提前谢谢你!

3 个答案:

答案 0 :(得分:0)

如果您正在使用shell脚本或命令行,请尝试“ls -t”,或者如果您希望它们按相反的顺序使用“ls -tr”

答案 1 :(得分:0)

 ls *.dat | python -c "import sys,re; print sorted(sys.stdin, key = lambda x: re.search( r'(\d+)\.dat', x).group(1))[-1]"

答案 2 :(得分:0)

你可以这样:

$ latest=$(echo -e "PRODUCTS_I03_20130429.dat\nPRODUCTS_I03_20130428.dat"|sort -r -t"_" -k3|head -1)
$ echo ${latest%_*}
PRODUCTS_I03

仅当文件名中有两个_时才会起作用。 echo仅供测试。您应该将其替换为您要检查的图案,例如ls -1 PRODUCTS_*_*.dat

如果时间戳与文件的日期相同,您可以使用以下内容:

$ latest=$(ls -1rt|head -1)
$ echo ${latest%_*}

或者您可以使用state -c %y $latest获取(上次修改)时间戳的实际日期。