我正在寻找创建一个脚本,该脚本列出Linux OS中未格式化的分区/磁盘。

我找不到列出未格式化磁盘/分区的可靠方法。

我尝试使用输出的lsblk --output NAME,FSTYPE,MOUNTPOINT | grep "sd"

sda
└─sda1 xfs    /
sdb
└─sdb1 ext4   /mnt/resource
sdc
sdd


没有列出挂载点的名称是未格式化的磁盘。如何获得这些名字?或获得这些的最佳方法是什么?

我使用的是CentOS Linux版本7.3.1611(核心)

最佳答案

尝试类似的东西:

lsblk --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { if ($1 != "" ) dsk=$1;if ( $2 == "") print dsk }'


我们将挂载点行上方的分区存储在变量dsk中,然后在没有挂载点的情况下将其打印出来,即$ 2等于null。

粘贴从评论起作用的答案:

lsblk -r --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { dsk=substr($1,1,3);dsks[dsk]+=1 } END { for ( i in dsks ) { if (dsks[i]==1) print i } }'

关于linux - Shell脚本列出未格式化的磁盘(分区),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43889158/

10-09 09:24