awk + sed + abbina una stringa complessa


0

Ho bisogno di un comando utile per abbinare la stringa "/ pci ... / pci ... / pci .... / scsi .... / disk ..." con awk o sed? (Devo inserire questo comando nel mio script ksh)

l'osservazione 1 [...] può essere qualsiasi stringa e "pci pci pci scsi disk" sono stringhe predefinite osservazione 2 Ho una macchina Solaris, quindi la sintassi dovrebbe adattarsi a Solaris

esempio

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

dare l'output

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

1
[...] può non essere una stringa qualsiasi probabilmente sarebbe molto brutto se dovesse contenere /.
Daniel Beck

Risposte:


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

Per esempio

$ 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

prtpicl -v | grep ': disk0. * / pci [^ /] * / pci [^ /] + / pci [^ /] + / scsi [^ /] + / disk' non corrisponde a / pci @ 0 / pci @ 0 / pci @ 2 / scsi @ 0 / disk @ 0? (Lo provo sulla mia macchina solaris)
Eytan

echo "/ pci @ 0 / pci @ 0 / pci @ 2 / scsi @ 0 / disk @ 0" | egrep ': disk0. * / pci [^ /] * / pci [^ /] + / pci [^ /] + / scsi [^ /] + / disk' - non è compatibile con linux ma ho bisogno di questo per il mio macchina solaris
Eytan

@ Ektan: Non ho un computer Sun. Qual è esattamente l'output di prtpicl -v | grep disk0?
RedGrittyBrick

prtpicl -v | grep disk0 DAMI - & gt; : disk0 / pci @ 0 / pci @ 0 / pci @ 2 / scsi @ 0 / disk @ 0
Eytan

@ Ektan: Funziona per me. Vedi risposta aggiornata. Forse egrep su Sun boxen è diverso. Controllerò il mio vecchio manuale Solaris più tardi.
RedGrittyBrick
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.