Script pour utiliser un mot dans un fichier [KSH-AIX] - Codes et scripts - Linux et OS Alternatifs
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
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)
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.
Marsh Posté le 23-11-2005 à 16:02:55
désolé :
MOT=$(perl -w -p -e '/(toto_\S+)/ and $_=$1;' file)
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
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à.
Marsh Posté le 23-11-2005 à 18:05:56
Vu comme cela, ça parait évident lol ;o)
En tout cas merci
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