如何提取 proc 文件的 linux 版本和 gcc 版本?

问题描述

正如问题所说,我想知道如何从 proc 文件获取 linux 和 gcc 版本。我知道我必须使用 cat /proc/version 但结果是(对我来说)不必要的信息太多。如果我运行命令,我会得到这个:MINGW64_NT-10.0-19042 version 3.1.6-340.x86_64 (@fv-az314) (gcc version 9.3.0 (GCC) ) 2020-07-09 14:33 UTC(命令在 cmder bash.exe 中运行)。我想要的只是获得 3.1.6-340.x86_64(linux 版本)和 9.3.0(gcc 版本)。我知道有某些命令允许这种信息提取,但由于我是 bash 脚本的新手,我不知道如何去做。我想要的输出是:Linux: <linux version> \n gcc: <gcc version>(其中 \n 是换行符)。

感谢所有帮助。

解决方法

我保留了您的“格式”,但我不确定这是否是您真正想要的。

awk '{printf "Linux: %s \n gcc: %s",$3,gensub(/^.*gcc version ([^ ]+).*$/,"\\1","1",$0)}' /proc/version
Linux: 5.4.0-72-generic 
 gcc: 9.3.0tink@linux:~
,

代码是:

var1=$(uname -r)
var2=$(gcc -dumpversion)
echo -e "Linux version is $var1 \n gcc version is $var2"

这应该为您提供所需的输出