linux - 从一组文件中查找最新文件

标签 linux

我有一个文件test.dat,里面有多个文件,比如a1,a2,a3 b1,b2,b3 c1,c2,c3。我想保留最新版本的 a、b 和 c。 我使用了 cat test.dat|sort -r|sed -ne ''1',$p' 但它给了我最新的 a 系列,我想要 a、b 和c系列。任何建议请帮助。

最佳答案

我正在根据您对评论所做的澄清完全重写我的答案。假设文件输入如下:

rul@helicon:~$ cat test.dat 
/home/user/a_4.0.2
/home/user/a_3.0.2
/home/user/a_1.0.1
/home/user/b_R2.1.1
/home/user/b_2.1.1
/home/user/b_1.2.1
/home/user/b_1.1.1
/home/user/c_R1.1.1
/home/user/c_5.1.1
/home/user/c_3.1.1
/home/user/c_2.1.1
/home/user/c_1.1.1

您可以通过以下方式获得您正在寻找的文件:

rul@helicon:~$ for i in $(sort test.dat | cut -d_ -f1 | uniq); do grep -E ^$i test.dat | sort -r | head -n1; done
/home/user/a_4.0.2
/home/user/b_R2.1.1
/home/user/c_R1.1.1

有点难看,但它有效。

关于linux - 从一组文件中查找最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21050263/

相关文章:

linux - 将文件从 tar 管道传输到命令

linux - 显示包含模式 'Pap' 但不包含模式 'Aig' 的文件行

linux - 用于测试入口流量的 Ping 命令

c++ - 提高 mmap memcpy 文件读取性能

python - 没有 PYTHONPATH 时的 PYTHONPATH 是什么?

linux - 我需要 grep 查找密码文件中的确切单词,但我得到了两个回复

c - 将参数作为编译时常量或变量传递时函数性能之间的差异

linux - Makefile 在文件夹上循环并动态获取名称

linux - 差异工具告诉我有一个我看不到的差异

linux - 判断卷是否安装在 ec2 实例上