You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从blkid命令输出中提取LABEL后的USB设备名称?

从blkid输出中提取USB设备标签名称的方法

先看看你提供的原始blkid输出:

$ blkid
/dev/sda1: UUID="88dd2cc5-0a4f-4477-b678-159613aaf920" TYPE="ext4"
/dev/sda2: UUID="ggxkwK-DZfA-DnTF-dWbn-msx6-egfo-GuGIuS" TYPE="LVM2_member"
/dev/mapper/vg_baldy1-lv_root: UUID="76ab63ba-e8c4-4040-9533-5c8562f739d4" TYPE="ext4"
/dev/mapper/vg_baldy1-lv_swap: UUID="462a170b-5e09-4b98-98ce-09e0a24009ab" TYPE="swap"
/dev/mapper/vg_baldy1-lv_home: UUID="c38c0b9a-1049-4e9f-8800-d68d2e450929" TYPE="ext4"
/dev/sdb1: LABEL="MYUSB" UUID="BF05-9FC6" TYPE="vfat"

我给你几个实用的命令行方法,帮你精准提取到USB设备的标签名称(也就是MYUSB):

方法一:grep + sed 组合(指定标签名)

如果已经知道目标标签是MYUSB,直接用这个命令就能一步到位:

blkid | grep 'LABEL="MYUSB"' | sed 's/.*LABEL="\([^"]*\)".*/\1/'

解释:

  • grep 'LABEL="MYUSB"':先过滤出包含目标标签的那一行
  • sed 's/.*LABEL="\([^"]*\)".*/\1/':用正则表达式匹配,把LABEL="之前和"之后的所有内容替换为空,只留下引号里的标签名

方法二:grep + sed 组合(通用提取USB设备的标签)

如果以后需要提取任意USB设备的标签(不管名字是什么),可以用这个更通用的命令:

blkid | grep '/dev/sd[b-z][0-9]*:' | grep 'LABEL=' | sed 's/.*LABEL="\([^"]*\)".*/\1/'

解释:

  • grep '/dev/sd[b-z][0-9]*:':先过滤出USB设备的行(一般系统内置硬盘是/dev/sda,USB设备从/dev/sdb开始)
  • grep 'LABEL=':再从这些行里筛选出带标签的
  • 最后用sed提取标签名

方法三:用awk实现(更简洁)

awk处理这种文本提取也很方便,指定标签名的话可以用:

blkid | awk '/LABEL="MYUSB"/ {sub(/.*LABEL="/,""); sub(/".*/,""); print}'

通用提取USB标签的版本:

blkid | awk '/\/dev\/sd[b-z][0-9]*:/ && /LABEL=/ {sub(/.*LABEL="/,""); sub(/".*/,""); print}'

解释:

  • sub(/.*LABEL="/,""):删除从行开头到LABEL="的所有内容
  • sub(/".*/,""):删除从第一个"到行尾的所有内容
  • 最后打印剩下的部分,就是我们要的标签名

以上任何一个命令执行后,都会只输出MYUSB,完全符合你的需求。

内容的提问来源于stack exchange,提问作者tiger_groove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:07:47