我需要在特定时刻切线,我想显示 GPU 名称,但只显示名称,不显示其他内容。
inxi -Gx | grep 设备显示:
Device-2: NVIDIA GK107GLM [Quadro K1100M] vendor: Dell driver: nouveau
我希望它显示类似这样的内容
NVIDIA GK107GLM [Quadro K1100M]
如何剪切以仅显示名称?有没有办法打印范围,在本例中从字 Device 到字 vendor。
答案1
尝试这样做:
inxi -Gx | sed -n 's/.*Device-.*: \(.*\) vendor.*/\1/p'
答案2
就像是:
D=$(inxi -Gx | grep Device)
if [[ $D =~ ^Device-2:([[:print:]]*)vendor:([[:print:]]*)driver:([[:print:]]*)$ ]]
then
echo "Found Device: ${BASH_REMATCH[1]}"
else
echo "Did not find device"
fi
答案3
inxi -Gx | grep -oi nv.*]
inxi -Gx | awk '/Device/{print $2,$3,$4,$5}'
答案4
inxi -Gx | grep Device | cut -d ':' -f 2 | sed 's/ vendor//'
这cut
将使用“:”作为分隔符将输出拆分成多个字段,然后为您提供第二个字段。然后使用 sed 从末尾删除特定单词。
如果您知道长度,那么您可以使用剪切一个范围cut
,man cut
有关详细信息,请参阅。