我需要这4个内核版本中的最新版本.

  • 4.18.0-187.el8.x86_64
  • 4.18.0-193.14.3.el8_2.x86_64
  • 4.18.0-193.el8.x86_64
  • 4.18.0-80.el8.x86_64

我最初使用的是数字排序(返回的0-80版本不正确),后来又使用了版本排序

latest_kernel_in_use=$(ls boot/vmlinuz* | sed 's/\/boot\/vmlinuz-//' | sort -V | tail -n1 )

该命令仍然返回4.18.0-193.el8.x86_64与期望的4.18.0-193.14.3相比.el8_2.x86_64输出.

帮我纠正命令中的错误.

[编辑]

latest_kernel_in_use=$(ls boot/vmlinuz* | sed 's/boot\/vmlinuz-//' | sed 's/[.-][[:alpha:]][[:alnum:][:punct:]]*//' | sort -V | tail -n1)

这个的输出是

我可以在那里工作.

推荐答案

所以我最终做到了,我删除了后面的字母/字母数字序列,因为不管RPM内核版本是4.18.0-193.14.3.el8_2.x86_64还是Ubuntu中的4.18.0-193.14.3-generic,都至少有一个字母

latest_kernel_in_use=$(ls boot/vmlinuz* | sed 's/boot\/vmlinuz-//' | sed 's/[.-][[:alpha:]][[:alnum:][:punct:]]*//' | sort -V | tail -n1)

这个的输出是4.18.0-193.14.3

我可以在这里工作.

Linux相关问答推荐

在CefExecuteProcess;之前创建新线程会导致CEF应用程序崩溃并显示SIGTRAP

为什么我们不能使用${$#}来获取传递给shell 脚本的最后一个参数?

Bash:将带有新行的字符串转换为带有逗号、内联的唯一值的字符串

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

使用正则表达式捕获特定字符串

从另一个文件中的大文件中查找行的最快方法

我想使用排序命令对第 5 列进行日期排序.但问题是格式不一致,有什么方法可以做到吗?

使用 sed 或 awk 在 linux 中将第一行中的一个单词替换为第二行中的另一个单词

使用打印命令 Select 子域

Docker 容器立即退出

Linux命令行如何接受没有pin的蓝牙设备配对

为什么我不能将 Unix Nohup 与 Bash For 循环一起使用?

如何在 Ubuntu 12.04 中更改 Jenkins 安装的端口号

列出当前目录和所有子目录中特定大小的文件

Linux 配置/制作,--prefix?

给定一个 linux 用户名和密码,我如何测试它是否是有效帐户?

如何从 shell 确定当前的 CPU 利用率?

将默认 Python 版本从 2.4 更改为 2.6

如何查看线程在哪个 CPU 内核中运行?

编辑文件时保留 samba 共享的文件权限