UNIX et PHP

UNIX et PHP - Shell/Batch - Programmation

Marsh Posté le 02-03-2004 à 11:42:00    

Bonjour
Déjà je ne sais pas si je suis dans le bon forum mais bon je tente ma chance :)
Je dois maintenir un programme PHP qui s'exécute sous unix d'où ma présence ici ...
A un moment j'ai :
$g .= "grep $keyword |"
d'après ce que j'ai pu comprendre grep permet de classer et | d'utiliser plusieurs commandes mais que vient faire sa présence en fin de ligne alors ?
puis je pensais que pour executer une commande il fallait faire :
exec(grep ...); qu'en est-il du : .= ?!?
Merci d'aider un newbie :d

Reply

Marsh Posté le 02-03-2004 à 11:42:00   

Reply

Marsh Posté le 02-03-2004 à 11:44:50    

en fait, grep te permet de chercher un motif dans un ou plusieurs fichier, fais un man grep :
NAME
       grep, egrep, fgrep - print lines matching a pattern
 
SYNOPSIS
       grep [options] PATTERN [FILE...]
       grep [options] [-e PATTERN | -f FILE] [FILE...]
 
DESCRIPTION
       Grep  searches the named input FILEs (or standard input if no files are
       named, or the file name - is given) for lines containing a match to the
       given PATTERN.  By default, grep prints the matching lines.
 
       In addition, two variant programs egrep and fgrep are available.  Egrep
       is the same as grep -E.  Fgrep is the same as grep -F.
 
et le | te permet d'utiliser la sortie de cette commande vers autre chose, donc là tu fais une recherche de $keyword mais la commande n'est pas complete on dirait :/


Message édité par uriel le 02-03-2004 à 11:46:57

---------------
IVG en france
Reply

Marsh Posté le 02-03-2004 à 11:53:15    

en effet le code complet est :
 foreach ($a as $keyword) {
  $g .= "grep $keyword |";
 }
 
 $rc = exec("cat $f | $g grep -c =" );
 return (int)($rc);

Reply

Marsh Posté le 02-03-2004 à 12:28:23    

bon mon problème est le suivant :
j'ai une liste d'objet avec un certain nombre de paramètres (TYPE, CAUSE, DURATION ...)
et je devais jusqu'à maintenant compter le nombre d'apparition d'objets ayant des paramètres particuliers (par exemple : TYPE=A, CAUSE=3).
J'utilisais donc :
function ticket_multi_count($f, $a)
{
 foreach ($a as $keyword) {
  $g .= "grep $keyword |";
 }
 
 $rc = exec("cat $f | $g grep -c =" );
 return (int)($rc);
}
...
ticket_multi_count($f, array( "TYPE=SETUP" , "DIR=0" ) );
 
Mais maintenant je veux compter les objets avec un nouveau paramètres (la durée).
Le problème c'est que les paramètres que j'utilisais précedemment étaient fixes (CAUSE ne peut valoir que 0,1 ou 3).
Mais duration est variable ... et je veux des objets ayant une durée comprises entre deux valeurs ...
Quelqu'un pour m'aider ?!?

Reply

Marsh Posté le 04-03-2004 à 09:11:03    

Bonjour
 
awk est ton ami
 
ou décris la structure de ton fichier à analyser
les amis de awk te repondront
 
 

Reply

Marsh Posté le 04-03-2004 à 10:55:18    

ou gawk aussi, mais faudrai que tu me fille un exemple concret.

Reply

Marsh Posté le 08-03-2004 à 09:23:45    

Ok merci mais il me semble que j'ai reussi à resoudre mon pb à coup de grep mais j'ai besoin d'une autre indication je voudrais recuperer le chemin d'un fichier dans une variable ... est-ce possible ?

Reply

Marsh Posté le 08-03-2004 à 11:07:14    

vi tu fait : nomfichier=fichier.txt
pour t en servir dans ton programme tu utilise $nomfichier
tu peut meme faire des truc du style
nomfichier= `cat fichier.txt | grep .... `

Reply

Sujets relatifs:

Leave a Replay

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