Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 获取shell中YYYYMMDD_HHMMSS.csv.gz格式的最新文件_Linux_Shell_Unix - Fatal编程技术网

Linux 获取shell中YYYYMMDD_HHMMSS.csv.gz格式的最新文件

Linux 获取shell中YYYYMMDD_HHMMSS.csv.gz格式的最新文件,linux,shell,unix,Linux,Shell,Unix,1我在shell的目录中有一组文件,我想根据文件名中的时间戳获取最新文件。 2例如: test1_20180823_121545.csv.gz test2\u 20180822\u 191545.csv.gz test3\u 20180823\u 192050.csv.gz test4_20180823_100510.csv.gz test4\u 20180823\u 191040.csv.gz 3. 根据上述给定文件的时间和日期扩展名。我的输出应该是test3\u 20180823\u 192

1我在shell的目录中有一组文件,我想根据文件名中的时间戳获取最新文件。 2例如: test1_20180823_121545.csv.gz test2\u 20180822\u 191545.csv.gz test3\u 20180823\u 192050.csv.gz test4_20180823_100510.csv.gz test4\u 20180823\u 191040.csv.gz 3.
根据上述给定文件的时间和日期扩展名。我的输出应该是test3\u 20180823\u 192050.csv.gz

如果文件也有ls-l显示的相应修改时间,那么您可以按修改时间的相反顺序列出它们并获得最后一个

    ls -1rt | tail -1
但是如果不能依赖于此,则需要编写脚本,例如perl。您可以将文件列表提取到数组中,然后将时间戳提取到其他数组中,将时间戳转换为易于排序到其他数组的历元时间,在对文件列表进行排序的同时进行排序。也许散列可以帮上忙。然后打印最后一张。 您可以尝试编写它,如果您遇到问题,这里的人可以纠正您。

使用查找和排序:

sort命令的选项是-t(分隔符)和-k(选择进行排序的键)


tail是从排序列表中获取最后一个条目。

到目前为止,您尝试了什么?鼓励提问者提供一个,尝试你的问题。嘿,路易斯,很抱歉,我也尝试了,但我没有成功。所以我想到了不要给出一些错误的代码。
find /path/to/mydirectory -type f | sort -t_ -k2,3 | tail -1