Tente isto:
lsscsi 4 0 1 | sed -r '/\[4:0:1:(1|12|13)\].*/!d'
A saída será:
[4:0:1:1] /dev/sdab
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp
Eu preciso do grep luns
específico do comando lsscsi
.
Por exemplo:
[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
Como posso usar somente luns
1, 12 e 13?
Estou usando: lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]'
O problema é quando estou procurando por um lun
com o mesmo número que outras scsi
entradas. Por exemplo, no meu caso, pesquisar lun
1 fornecerá a saída inteira porque meu ID
também é 1. Mesmo com lun
4 ( Host adapter
) ...
A saída deve ser como no exemplo, scsi
entradas e /dev/...
Tente isto:
lsscsi 4 0 1 | sed -r '/\[4:0:1:(1|12|13)\].*/!d'
A saída será:
[4:0:1:1] /dev/sdab
[4:0:1:12] /dev/sdo
[4:0:1:13] /dev/sdp
Isso deve funcionar independentemente dos outros números em qualquer lugar da linha:
egrep '^\[\d+:\d+:\d+:(1|12|13)\]'
Pode ser necessário também inverter os dois pontos, não no computador atm para verificar.
Por fazer isso para um substituto de intervalo (1 | 2 | 13) para, por exemplo, (2 [0-8])