Extraire un mot d'un fichier [ KSH ] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 05-12-2005 à 15:55:16
Ben une regexp tout bete du style "name=(\W+)," devrait suffire, non ?
Marsh Posté le 05-12-2005 à 15:55:49
ben par exemple :
/lpar_name=[^,]*/
edit: man perlretut, man perlre
Marsh Posté le 05-12-2005 à 16:06:34
encore trop fort minusplus !!!!!
Je savais que tu allais me dire man perlre...
Mais j'ai pas le manuel perle sur ma bécane...autrement tu penses bien que je l'aurais fait ;o)
Marsh Posté le 05-12-2005 à 18:21:04
Tu es sur que ce que tu veux ce n'est pas la commande "lparstat -i" (qui n'existe qu'en 5.3) ?
Marsh Posté le 05-12-2005 à 18:37:25
non non je ne pense pas. En plus je suis en AIX 5.2
J'écris un script ( d'ailleurs il est fini... ) qui :
1. Découvre à quelle partition est attribué le lecteur CDROM ( envoie de commande à la HMC )
2. Découvre sur cette partition sur quelle pci est le lecteur CDROM
3. rm du pci
4. envoie d'une commande DLPAR à la HMC afin d'attribuer dynamiquement mon CDROM à une autre partition
5. cfgmgr et mount sur la partition cible.
Voilà
Marsh Posté le 05-12-2005 à 15:48:20
Bonjour,
Je cherche à extraire un mot contenu dans un fichier.
Quand on édite mon fichier, il ressemble à ça :
===========================================================================
unit_phys_loc=U787B.001.DNW2674,bus_id=2,phys_loc=T16,drc_index=21020002,lpar_name=XD002,lpar_id=2,slot_io_pool_id=none,description=Other Mass Storage Controller,feature_codes=none,pci_vendor_id=105A,pci_device_id=1275,pci_subs_vendor_id=105A,pci_subs_device_id=1275,pci_class=0180,pci_revision_id=01,bus_grouping=0,iop=0,parent_slot_drc_index=none,drc_name=U787B.001.DNW2674-P1-T16
=============================================================================
Je cherche donc à extraire dans une variable le mot en rouge XD002.
Voici ce que j'ai écrit ( inspiré il est vrai par minusplus... )
#!/bin/ksh
MOT=$(perl -w -p -e '/(XD\S)/ and $_=$1;' mon_file)
echo " la machine est $MOT "
Dans ce cas de figure, mon echo me renvoie XD0
et si j'écris :
MOT=$(perl -w -p -e '/(XD\S+)/ and $_=$1;' mon_file)
mon echo me renvoie :
la machine est XD002,lpar_id=2,slot_io_pool_id=none,description=Other
Quelqu'un aurait une idée pour que je ne ressorte que XD002
Merci