Extraction d'un mot contenant avec sed ou grep

- - Dernière réponse : zipe31
Messages postés
37470
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
21 novembre 2019
- 6 nov. 2019 à 13:04
Bonjour

Plutôt qu'un long discours...


# cat plop
3600a09803753456245244b73666f6a41 dm-21 NETAPP ,LUN C-Mode
size=400G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=enabled
| |- 1:0:0:20 sdck 69:128 active ready running
| `- 4:0:0:20 sdbz 68:208 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 2:0:0:20 sdcd 69:16 active ready running
`- 3:0:0:20 sdci 69:96 active ready running


J'aimerai pouvoir extraire les termes sdck sdcz sdcd sdci ...
Soit :


# cat plop | sed .....
sdck
sdbz
sdcd
sdci


Alors pour l'instant je fais


# cat plop | grep sd | sed 's/^.*\(sd*.*\).*$/\1/' | awk '{print $1}'
sdck
sdbz
sdcd
sdci


Mais je trouve ça un peu bancal...

Un idée ? Merci :!
Afficher la suite 

1 réponse

Messages postés
37470
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
21 novembre 2019
4229
0
Merci
Salut,

Plutôt qu'un long discours…
 $ cat fich 
3600a09803753456245244b73666f6a41 dm-21 NETAPP ,LUN C-Mode
size=400G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=enabled
| |- 1:0:0:20 sdck 69:128 active ready running
| `- 4:0:0:20 sdbz 68:208 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 2:0:0:20 sdcd 69:16 active ready running
`- 3:0:0:20 sdci 69:96 active ready running


$ egrep -o 'sd(c[dik]|bz)' fich 
sdck

sdbz
sdcd
sdci


;-)
zipe31
Messages postés
37470
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
21 novembre 2019
4229 -
Ou :
$ grep -o '\bsd[^ ]*' fich 
sdck
sdbz
sdcd
sdci

Sous réserve qu'aucun autre mot dans le fichier ne commence par "sd" ;-\
Commenter la réponse de zipe31