![如何通过 lsscsi 命令显示特定的 lun?](https://linux22.com/image/712365/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20lsscsi%20%E5%91%BD%E4%BB%A4%E6%98%BE%E7%A4%BA%E7%89%B9%E5%AE%9A%E7%9A%84%20lun%EF%BC%9F.png)
我需要luns
从lsscsi
命令中 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 luns
1、12 和 13?
我在用:lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]'
问题是当我搜索lun
与其他条目具有相同编号的a 时scsi
。例如,在我的情况下搜索lun
1 将给出整个输出,因为我的ID
也是 1。与lun
4(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])