Мне нужна полезная команда для сопоставления строки "/pci .../pci .../pci ..../scsi ..../disk ..." с awk или sed? (Мне нужно поместить эту команду в мой скрипт ksh)

примечание 1 [...] может быть любой строкой, и «pci pci pci scsi disk» являются строками по умолчанию примечание 2 У меня машина Solaris, поэтому синтаксис должен соответствовать Solaris

пример

       prtpicl -v |grep :disk0 | awk '{print $2}'    

дать вывод

       /pci@0/pci@0/pci@2/scsi@0/disk@0 

1 ответ1

0
prtpicl -v \
| egrep ':disk0.*/pci[^/]+/pci[^/]+/pci[^/]+/scsi[^/]+/disk' \
| awk '{print $2}'

Например

$ cat prtpicl.out
Some headings blah blah
:disk0 some uninteresting stuff
:disk0 /pci@0/pci@0/pci@2/scsi@0/disk@0
:disk1 /pci@0/pci@0/pci@2/scsi@0/disk@1
Last line

$ cat prtpicl.out \
> | egrep ':disk0.*/pci[^/]+/pci[^/]+/pci[^/]+/scsi[^/]+/disk' \
> | awk '{print $2}'
/pci@0/pci@0/pci@2/scsi@0/disk@0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .