awk + ​​sed + 匹配复杂字符串

awk + ​​sed + 匹配复杂字符串

我需要有用的命令来使用 awk 或 sed 匹配字符串“/pci.../pci.../pci..../scsi..../disk...”?(我需要将此命令放入我的 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

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

相关内容