[KSH-AIX] Script pour utiliser un mot dans un fichier

Script pour utiliser un mot dans un fichier [KSH-AIX] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-11-2005 à 12:46:06    

Bonjour,
 
Je travaille sous AIX.
Je cherche à écrire un script qui pourrait lire le contenu d'un fichier, y trouver un mot spécifique ( ex : toto ) et utiliser ce mot comme variable pour le passer dans une commande.
Je ne suis pas programmeur mais malgrés mes recherches je n'y arrive pas... :(  
 
Quelqu'un pourrait-il m'aider???
 
Merci

Reply

Marsh Posté le 23-11-2005 à 12:46:06   

Reply

Marsh Posté le 23-11-2005 à 12:49:02    

qu'est-ce que tu entends par "y trouver" ?

Reply

Marsh Posté le 23-11-2005 à 12:54:32    

par exemple si mon fichier contient un ligne avec :  
titi_1 toto_2 tata_3 tutu_4
il faudrait trouver dans ce fichier le mot commençant par totoX et utiliser ce résultat comme variable pour le passer en commande

Reply

Marsh Posté le 23-11-2005 à 13:01:51    

heu je suis pas sûr d'avoir bien compris mais disons que pour extraire toto_1 de la ligne dans le fichier 'file' ci-dessus il faudrait faire un  
 
MOT = $(perl -wp ' /toto_\S+/ and $_=$1' file)

Reply

Marsh Posté le 23-11-2005 à 13:27:30    

c'est du PERL ou du KSH???

Reply

Marsh Posté le 23-11-2005 à 13:29:44    

c'est du perl dans du KSH... :D

Reply

Marsh Posté le 23-11-2005 à 14:37:12    

ça ne marche pas.....
 
il me dit :  
 
Can't open perl script "/toto_\S+/ and $_=$1": Un fichier ou un répertoire du chemin d'accès n'existe pas.
test.sh: MOT:  introuvable.

Reply

Marsh Posté le 23-11-2005 à 16:02:55    

désolé :  
 
MOT=$(perl -w -p -e '/(toto_\S+)/ and $_=$1;' file)

Reply

Marsh Posté le 23-11-2005 à 17:39:49    

Ok ça marche
C'est cool
minusplus t'es trop fort

Reply

Marsh Posté le 23-11-2005 à 17:45:27    

:sol:

Reply

Marsh Posté le 23-11-2005 à 17:45:27   

Reply

Marsh Posté le 23-11-2005 à 17:52:56    

ça marche mais j'ai pas envie de finir idiot lol ;o)
tu peux m'expliquer car je ne comprends pas ta ligne.... lol
c'est con de lancer des trucs sans comprendre ce qui est ecrit

Reply

Marsh Posté le 23-11-2005 à 17:59:42    

bon la partie 'MOT=' me semble évidente...  
 
le role de $(...) est de renvoyer tout ce que vont afficher les commandes entre parenthèses
 
la commande entre parenthèse est l'exécution de perl en mode warning (-w), en bouclant sur toutes les lignes du fichier et en affichant le résultat du script (-p), en utilisant le script fournit dans la commande (-e) et en l'appliquant au fichier 'file'. Le script perl c'est ce qui est entre les ''.  
 
Entre les des / on a une recherche d'expression régulière (man perlre) : on cherche un mot contenant 'toto_' suivit de n'importe quel caractère qui ne soit pas un blanc (\S) et en nombre quelconque (+). On met tout ça dans des parenthèses pour enregistrer le résultat dans la variable $1. Si la recherche aboutit (and) on stocke ce qu'on a trouvé ($1) dans la variable spéciale $_. C'est elle qui sera automatiquement imprimée par perl à la fin du script.  
 
voilà.

Reply

Marsh Posté le 23-11-2005 à 18:05:56    

Vu comme cela, ça parait évident lol ;o)
En tout cas merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed