我正在增强我的Linux脚本,我有一个文件夹,里面有许多不同日期的文件,我想获取一个以特定名称开始的最新文件.

For ex.
I have below list of files in a folder I need latest file of name Subnetwork_RAN in a folder:

Subnetwork_PCC_11Dec2022UTC0500
Subnetwork_RAN_12Dec2022UTC0500
Subnetwork_RAN_13Dec2022UTC0500
Subnetwork_PCC_13Dec2022UTC0500

输出将是文件名子网络_RAN_13Dec2022UTC0500

我try 构建一个Linuxshell 脚本以获取特定名称的最新文件.

推荐答案

这个问题有一个相当简单的awk解决方案:

ls -tl | awk ' $9 ~ /Subnetwork_RAN/ {print $9; exit;}'

ls -tl输出当前目录的长列表,按时间排序(最新的在前).

该输出被输送到awk,它(逐行)查找包含所需字符串的文件名.当它第一次找到文件名时,它会打印文件名并退出.

请注意,这假设(如您的示例所示)文件名不包含空格.如果是这样的话,您需要修改print语句,将第$0行的子字符串从您的字符串开始打印到行尾.

如果您的字符串可能在较新的文件名中重复,但不在开头,则可以修改正则表达式条件,以仅 Select 字符串位于开头的文件名$9~/^Subnetwork_RAN/

Linux相关问答推荐

如何根据具体情况打印两行输出?

在c++编译期间,什么是linux命令,它给出了链接库的路径?

需要获取文件名、行号、模式在文件中的匹配位置

替换前 3 个字符范围内的所有整数

awk内部的变量操作

构建 python 映像时 Docker compose 问题,访问被拒绝或存储库不存在

ENQCMD 指令的好处和微操作是什么?

内核是如何工作的?

如何在初始化脚本中以特定用户身份运行命令?

CHMOD 755 与 750 权限集之间的差异

如何优雅地退出 X11 事件循环?

从linux命令行写入串口

发出信号并中断比较

是否有一个 linux 命令来确定与给定进程 ID 关联的窗口 ID?

crt1.o:在函数_start中:-Linux 中未定义对main的引用

在 shell 脚本的 for 循环中迭代行而不是单词

如何通过进程名获取PID?

Linux控制台中的模糊文件搜索

在linux中将制表符分隔的文件转换为csv的最快方法

Linux 中合理数量的 inotify 监视是多少?