【发布时间】:2021-02-13 05:12:05
【问题描述】:
我有一个要求,我需要列出具有独特模式的目录中的文件,并在重复的情况下选择最近更新的文件以避免重复记录。
文件:
File Name Update Time
Test-11121202025-20201006-111506-1601997306.txt Oct 25, 2020
Test-11121202025-20201006-111506-1801997306.txt Oct 30, 2020
Test-77722202025-20201006-111506-1601997306.txt Oct 25, 2020
在这种情况下所需的输出:
Test-01121202025-20201006-111506-1801997306.txt
Test-77722202025-20201006-111506-1601997306.txt
说明:第一个和第二个文件与我的用例相同,因为 Test-11121 (Initial 10 char ) 在最初的两个文件中是相同的,但是第二个是最近更新的,所以我将丢弃第一个。 除此之外,因为第三个文件是唯一的,因为只有一个带有模式的条目(Test-77722)所以我也会认为这是在输出中。
我尝试了以下命令,但这没有帮助。我想我可以使用 shell 脚本来实现,但我不想为这个小用例这样做
ls -lt| awk 'BEGIN{FS="-"}{ print $2 }' | sort | uniq
任何帮助将不胜感激。
【问题讨论】:
-
你说 "因为 Test-11121 (Initial 10 char ) 在最初的两个文件中是一样的" 但是一个是
Test-11121,另一个是Test-01121。您的意思是说它们是相同的,因为除了前 10 个字符之外的所有其他字符都是相同的,还是您的示例不好? -
@JNevill 对不起,我的错。已更正。感谢您强调
-
不确定为什么会有反对票?任何改善我的问题的建议
-
您实际上并不需要在这里“解析”输出 - 使用基于时间的排序,您所需要的只是文件名。这里的“解析”是一个红鲱鱼。