我需要从lsscsi命令grep特定的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只有第一,十二和十三?
我正在使用: lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]' lsscsi | awk '{ print $1,$6 }' | grep -w 4:0:1 | egrep -w '1|1[2-3]'
问题是当我正在寻找一个与其他scsi条目数相同的lun 。 例如,在我的情况下,searchlun 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
这应该工作,而不pipe行中的任何其他数字:
egrep '^\[\d+:\d+:\d+:(1|12|13)\]'
也许还需要反斜杠,而不是在电脑atm检查。
对于例如(2 [0-8])的范围替代(1 | 2 | 13)