首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从shell命令的输出中过滤出所需的文本?

如何从shell命令的输出中过滤出所需的文本?
EN

Stack Overflow用户
提问于 2021-02-02 23:27:27
回答 1查看 37关注 0票数 0

我正在尝试过滤新添加的驱动器,如da0,da1...(取决于硬盘类型)等。这应该是通过动态发生的,就像如果我运行ls /dev/ | grep "da\|ada\|vtbd\|nvd",我应该只得到新添加的驱动器或卸载的驱动器。所以我需要删除挂载的驱动器,并且应该过滤未挂载的驱动器。如何使用sed或awk命令对其进行过滤?

代码语言:javascript
复制
root@ostest:~ # lsblk
DEVICE         MAJ:MIN SIZE TYPE                              LABEL MOUNT
da0              0:93  5.0G zfs                                   - -
da1              0:104 5.0G zfs                                   - -
da2              0:105 5.0G zfs                                   - -
da3              0:107 5.0G zfs                                   - -
vtbd0            0:87   50G GPT                                   - -
  vtbd0p1        0:89  256K freebsd-boot       gptid/0599c6ae-5f2f-11eb-a6b0-1707445d9baa -
  vtbd0p2        0:90  2.0G freebsd-swap                  gpt/swap0 -
  vtbd0p3        0:91   48G freebsd-zfs                   gpt/disk0 <ZFS>
vtbd1            0:88  482K cd9660                 iso9660/config-2 /var/lib/cloud/seed/config_drive
EN

回答 1

Stack Overflow用户

发布于 2021-02-08 23:12:40

您可以运行以下命令列出已卸载的卷:

代码语言:javascript
复制
lsblk  --noheadings --raw | awk '{print substr($0,0,4)}' | uniq -c | grep 1 | awk '{print "/dev/"$2}' | grep -E "(/dev/.*)[[:digit:]]"

使用此命令,我们将使用grep -E "(/dev/.*)[[:digit:]]列出所有分区,忽略磁盘。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66012670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档