按升序列出大于给定值的文件

按升序列出大于给定值的文件

我有一些具有标准前缀的日志文件。

dev-app.0001
dev-app.0002
dev-app.0003
dev-app.0004
dev-app.0005
dev-app.0006
dev-app.0007
dev-app.0008

我有一个元数据文件,其中包含此日志文件创建的时间。

例如:在5AM dev-app.0005 is created。我想按升序列出大于 dev-app.0005 的文件。

预期输出:

my_file=dev-app.0005

列出大于或等于 $my_file 的文件

dev-app.0005
dev-app.0006
dev-app.0007
dev-app.0008

答案1

尝试这个,

 my_file=dev-app.0005
 ls -1 | sed -n "/$my_file/,//p"
  • -1为 的每行输出打印一个条目ls
  • sed -n '/dev-app.0005/,//p'将打印匹配模式后的所有内容dev-app.0005

答案2

也尝试一下(从 msp9011 的帖子中窃取)

$ read TIME my_file REST < metadatafile
$ ls dev* | sed -n "/$my_file/,\$p"
dev-app.0005
dev-app.0006
dev-app.0007
dev-app.0008

答案3

bash,其中shopt -s extglob:除您不需要的 4 个文件之外的所有文件:

ls !(dev-app.000[1-4])

模式匹配 在 bash 手册中。

答案4

我回答我自己的问题。我发现了另一个简单的方法。

ls | grep dev-app.| awk '$1 >= "dev-app.0005"'

相关内容