如何通过 lsscsi 命令显示特定的 lun?

如何通过 lsscsi 命令显示特定的 lun?

我需要lunslsscsi命令中 grep 特定内容。

例如:

[root@e15l1 ~]# lsscsi 4 0 1 | awk '{print $1,$6}' | head
[4:0:1:0] -
[4:0:1:1] /dev/sdab
[4:0:1:2] /dev/sdj
[4:0:1:3] /dev/sdz
[4:0:1:4] /dev/sdk
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp
[4:0:1:38] /dev/sdad

我怎样才能只 grep luns1、12 和 13?

我在用:lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]'

问题是当我搜索lun与其他条目具有相同编号的a 时scsi。例如,在我的情况下搜索lun1 将给出整个输出,因为我的ID也是 1。与lun4(due Host adapter) 相同...

输出应如示例中所示,scsi条目和/dev/...

答案1

尝试这个:

lsscsi 4 0 1 | sed -r '/\[4:0:1:(1|12|13)\].*/!d'

输出将是:

[4:0:1:1] /dev/sdab
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp

答案2

无论该行中的其他数字如何,这都应该有效:

egrep '^\[\d+:\d+:\d+:(1|12|13)\]'

可能还需要反斜杠冒号,而不是在计算机自​​动取款机上检查。

对于范围替换(1|2|13),例如(2[0-8])

相关内容