2011-05-30 5 views
0

J'ai un tas d'instructions sous UNIX que je veux boucler pour utiliser la valeur paramétrée pour leurs calculs.paramétrer les instructions UNIX

more /var/xacct_data/xxxx/log_flattener/xxxx/logfile_current | grep " F " //E,I,D 
**xxxx = mpay,mmg,tvr** 


/var/xacct_data/faff/faff1/log_flattener/faffsnp1/ logfile_current | grep " F "   //E , I, D also 
/var/xacct_data/faff/faff1/log_flattener/faffdbt1 /logfile_current | grep " F "  //E , I, D also 
/var/xacct_data/faff/faff1/log_flattener/fafftxn1 /logfile_current | grep " F "    //E , I, D also 
/var/xacct_data/faff/faff2/log_flattener/faffdbt2/ logfile_current | grep " F "  //E , I, D also 

Je veux stocker ces chemins dans un fichier. Lire à partir du fichier dans un script shell Unix. et exécutez les commandes unix sur les chemins ci-dessus, tout en manipulant les chemins ci-dessus en substituant certaines valeurs dans le chemin.

Par exemple, dans le bloc de code ci-dessus, dans le chemin le plus haut. Je veux remplacer le xxxx par les trois valeurs données. mpay, mmg et tvr. comment je vais à ce sujet ??

Pour chaque grep " F ", je veux utiliser E, I et D comme paramètres pour le chemin courant. Comment fait-on ça??

Répondre

1

La partie gauche du tube tronqué mais semblent le côté grep, je pense que vous cherchez

... | grep " [FEID] " 
+0

ça va faire l'affaire? dois-je mettre en place une boucle? – amit

+0

il n'y a pas de délimiteurs. ne traiterait-il pas FEID comme une seule chaîne ?? – amit

+0

Veuillez clarifier ce que vous voulez réaliser. Votre code n'a pas de sens car il est actuellement écrit. – jlliagre

0

Cela devrait vous aider à démarrer. Je ne vais pas écrire le script entier pour vous.

En bash, zsh, etc ...

for directory in mpay mmg tvr; do 
    for char in F E I D; do 
     echo "Looking for lines containing ${char} in ${directory} directory..." 
     grep "${char}" /var/xacct_data/${directory}/log_flattener/${directory}/logfile_current 
    done 
done 

Pas besoin de more ici. grep prend un nom de fichier en entrée.