我想使用#include<bits/stdc++.h>
using namespace std;
int main()
{
map<pair<string, long long int>, string> MAP;
pair<string, long long int> P;
MAP.insert(pair<pair<string, long long int>, string>(pair<string, long long int>("Apple", 45), "Manzana"));
MAP.insert(pair<pair<string, long long int>, string>(pair<string, long long int>("Berry", 20), "Arandano"));
P = make_pair("Berry", 20);
//to find berry, 20
cout<<MAP[P]<<"\n";
return 0;
}
对目录的文件进行排序,此命令为您提供与上次修改时间连接的文件的名称。问题是我不知道如何获取最后一个数字字符(最后修改时间)以便用管道对文件进行排序,我想这将是这样的stat -c %n%Y <directory_path>*
,我已经阅读过stat并且对mannuals和其他过滤手册进行排序,比如查找或剪切,我仍然没有解决方案。任何建议表示赞赏,谢谢。
答案 0 :(得分:1)
如果您使用空格分隔文件和时间,则可以使用-k 2
对第二列进行排序:
rseaman@Ubuntu-PC:~/temp/20180310/49211913$ ls -l
total 12
-rw-rw-r-- 1 rseaman rseaman 0 Mar 10 18:42 file0
-rw-rw-r-- 1 rseaman rseaman 37 Mar 10 18:10 file1
-rw-rw-r-- 1 rseaman rseaman 22 Mar 10 18:10 file2
-rw-rw-r-- 1 rseaman rseaman 19 Mar 10 18:13 file3
rseaman@Ubuntu-PC:~/temp/20180310/49211913$ stat -c "%n %Y" * | sort -n -k 2
file1 1520705401
file2 1520705411
file3 1520705612
file0 1520707323
如果您希望使用| tr -d ' '
,则可以随后删除该空格,但这会干扰其中有空格的文件。
答案 1 :(得分:0)
您可以使用简单的命令列出目录中的文件(按修改时间排序):
ll -trh
OR
ls -ltrh
-t按修改时间排序
排序时-r逆序
-h with -l,以人类可读格式打印尺寸