Мне нужен конкретный grep luns
из lsscsi
команда.
Например:
[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
с тем же номером, что и другие scsi
записи. Например, в моем случае поиск lun
1 выдаст весь результат, потому что мой ID
тоже 1. То же самое с lun
4 (из-за Host adapter
) ...
Вывод должен быть таким, как в примере, scsi
записи и /dev/...
Попробуй это:
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
Это должно работать независимо от других чисел в строке:
egrep '^\[\d+:\d+:\d+:(1|12|13)\]'
Может также потребоваться обратная косая черта с двоеточиями, а не в банкомате компьютера для проверки.
Для этого замените диапазон (1 | 2 | 13) на, например, (2 [0-8])