Format de fichier

Fermé
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 - 26 juin 2007 à 11:23
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 - 26 juin 2007 à 14:46
bonjour j'aimerais savoir comment on test le format de chaque ligne d'un fichier

dans des fichier je test le format de chaque ligne du premier champ

$list = array (
"arbre.txt",
"cond.txt",
"gestion.txt",
"planning.txt",
"profile.txt",
"res.txt",
"rules.txt",
"session.txt",
"task.txt",
"ug.txt",
"uprocs.txt",
"user.txt");
foreach ($list as $value)
{
exec("cat /exec/products/dollaru/$_POST[path]/files/$value | -f1 -d" "" | awk /^[0-9]*$/);
exec("[$?<>0] break");
}

qu'en pensez vous? merci d'avance
A voir également:

12 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 11:35
Salut,

Quel langage ?

Et c'est quoi ça au-dessus, ton code ou le fichier à tester ?
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 11:46
en fait le problème se trouve sur c 2 lignes... c'est du ksh. quelqu'un si connaît un peu? gracias

cat /exec/products/dollaru/$_POST[path]/files/$value | -f1 -d" "" | awk /^[0-9]*$/
[$?<>0] break
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 11:55
Si tu nous disais plus clairement avec des exemples ce que tu veux faire, à quoi ressemble le 1er champ de chaque ligne de chaque fichier (afin qu'on vérifie l'exactitude de ta regex), et les tenants et aboutissants de ton script, parce que là vu comme ça c'est flou, enfin pour moi en tout cas ...

Merci.
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 11:58
en fait j'aimerais tester le premier champ de chaque ligne de mon fichier
j'aimerais tester leur format,
mais je ne sais pas comment m'y prendre...

j'aimerais tester si la première colonne du soit exclusivement du code numérique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 12:04
Tu peux coller quelques lignes de ton fichier s'il te plaît.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 12:14
En attendant regarde cette astuce dans la FAQ : shell tester une variable numerique
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 12:17
1182852803 4S+06NN 1er samedi sur 4 semaines (4w) (+6c) n (nnn,nnn,nnn,nnn,nnn,yyy,nnn)
1182852803 4S+07NN 1er dimanche sur 4 semaines (4w) (+7c) n (nnn,nnn,nnn,nnn,nnn,nnn,yyy)
1182852803 4S+13NN 2eme samedi sur 4 semaines (4w) (+13c) n (nnn,nnn,nnn,nnn,nnn,yyy,nnn)
1182852803 4S+14NN 2eme dimanche sur 4 semaines (4w) (+14c) n (nnn,nnn,nnn,nnn,nnn,nnn,yyy)
1182852803 4S+20NN 3eme samedi sur 4 semaines (4w) (+20c) n (nnn,nnn,nnn,nnn,nnn,yyy,nnn)
1182852803 4S+21NN 3eme dimanche sur 4 semaines (4w) (+21c) n (nnn,nnn,nnn,nnn,nnn,nnn,yyy)
1182852803 4S-01NN 4eme dimanche sur 4 semaines (4w) (-1c) n (nnn,nnn,nnn,nnn,nnn,nnn,yyy)
1182852803 4S-02NN 4eme samedi sur 4 semaines (4w) (-2c) n (nnn,nnn,nnn,nnn,nnn,yyy,nnn)
1182852803 A+01AA Le premier jour de l'annee (12m) (+1c) n (nny,nny,nny,nny,nny,nny,nny)
1182852803 A+01O+ le premier jour ouvre de l'annee (12m) (+1w) n (ynn,ynn,ynn,ynn,ynn,ynn,ynn)
1182852803 A+5NN le 5 janvier (12m) (+5c) n (yyy,yyy,yyy,yyy,yyy,yyy,yyy)
1182852803 A-01O- le dernier jour ouvre de l'annee (12m) (-1w) n (ynn,ynn,ynn,ynn,ynn,ynn,ynn)
1182852803 A-05_V le 2ieme vendredi ouvre de l'annee (12m) (+8c) n (nnn,nnn,nnn,nnn,yyy,nnn,nnn)
1182852803 A-08_V le 8ieme jour ouvre de l'annee (12m) (+8c) f (ynn,ynn,ynn,ynn,nnn,nnn,nnn)
1182852803 A-27N le 5 decembre (12m) (-27c) n (yyy,yyy,yyy,yyy,yyy,yyy,yyy)
1182852803 CAT le dernier jour ouvre sem entiere mois (2m) (+25c) n (yyy,yyy,yyy,yyy,yyy,yyy,yyy)
1182852803 CP vendredi ouvre derniere sem entiere mois (1m) (-3c) p (nnn,nnn,nnn,nnn,ynn,nnn,nnn)
1182852803 CPON (1m) (+4c) n (nny,nny,nny,nny,nny,nny,nny)
1182852803 H+01_N tous les lundis (1d) (+1c) n (yyy,nnn,nnn,nnn,nnn,nnn,nnn)
1182852803 H+01_S tous les 15 jours le lundi (2w) (+1c) n (yyy,nnn,nnn,nnn,nnn,nnn,nnn)
1182852803 H+02O+ tous les mardis si chome report+ (1w) (+2c) f (ynn,ynn,ynn,ynn,ynn,ynn,ynn)
1182852803 H+02_N tous les mardis (1d) (+1c) n (nnn,yyy,nnn,nnn,nnn,nnn,nnn)
1182852803 H+03_N tous les mercredis (1d) (+1c) n (nnn,nnn,yyy,nnn,nnn,nnn,nnn)
1182852803 H+04_N tous les jeudis (1d) (+1c) n (nnn,nnn,nnn,yyy,nnn,nnn,nnn)
1182852803 H+05_N tous les vendredis (1d) (+1c) n (nnn,nnn,nnn,nnn,yyy,nnn,nnn)
1182852803 H+06_N tous les samedis (1d) (+1c) n (nnn,nnn,nnn,nnn,nnn,yyy,nnn)
1182852803 H+07_N tous les dimanches (1d) (+1c) n (nnn,nnn,nnn,nnn,nnn,nnn,yyy)
1182852803 J+01LJ Du Lundi au Jeudi (1d) (+1c) n (yyy,yyy,yyy,yyy,nnn,nnn,nnn)
1182852803 J+01LS Du lundi au samedi (1d) (+1c) n (yyy,yyy,yyy,yyy,yyy,yyy,nnn)
1182852803 J+01LV Du Lundi au Vendredi N Du Lundi au Vendredi sauf jours feries (1d) (+1c) n (yyy,yy
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 12:30
Bon voilà un exemple à adapter selon tes besoins :
$ cat -n plop

     1  1182852803 4S+06NN 1er samedi sur 4 semaines (4w) (+6c) n
     2  1182852803 4S+07NN 1er dimanche sur 4 semaines (4w) (+7c) n
     3  a1182852803 4S+13NN 2eme samedi sur 4 semaines (4w) (+13c) n
     4  -1182852803 4S+14NN 2eme dimanche sur 4 semaines (4w) (+14c) n
     5  118b28?52803 4S+20NN 3eme samedi sur 4 semaines (4w) (+20c) n
     6  1182852803 4S+21NN 3eme dimanche sur 4 semaines (4w) (+21c) n
     7  1182852803 4S-01NN 4eme dimanche sur 4 semaines (4w) (-1c) n

$ awk '$1 ~ /^:digit:*$/ {print "     "FNR"  " $0 }' plop

     1  1182852803 4S+06NN 1er samedi sur 4 semaines (4w) (+6c) n
     2  1182852803 4S+07NN 1er dimanche sur 4 semaines (4w) (+7c) n
     6  1182852803 4S+21NN 3eme dimanche sur 4 semaines (4w) (+21c) n
     7  1182852803 4S-01NN 4eme dimanche sur 4 semaines (4w) (-1c) n
$ 
;-))
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 14:09
merci jipicy mais qu'est ce qu'elle fait cette commande plop en fait?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 14:14
"plop" c'est le nom du fichier dans lequel j'ai copié quelques lignes issues de ton "copier/coller" plus haut.

La ligne de commande c'est :
awk '$1 ~ /^:digit:*$/ {print "     "FNR"  " $0 }'
qui elle ne fait qu'afficher les lignes du fichier "plop" ne commençant exclusivement par un ou plusieurs caractères numériques dans le 1er champ.

;-))
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 14:27
je ne comprends pas ca ne marche pas... je suis embêté j'avoue
alors que je suis d'accord avec la commande awk que tu me propose...
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 14:32
Affiche tes essais ici. Réduit ton fichier d'entrée à quelques lignes (dont certaines commençant par autre chose que des chiffres) et appliques la commande...
0
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 14
26 juin 2007 à 14:46
<?
#Application developpee par Philippe BEAUDEQUIN (philippe.beaudequin@gadz.org)
#Eleve ingenieur ENSAM
#Juin a Septembre 2005
#version 03

session_start();

$id=session_id();
if($_POST[path])
{
echo "<b><font size=2>Importation automatique des donnees extraites par le shell</font></b><font color=green size=2><br>";
echo "session = " . $id ;

$PATH1="/var/www/html/dollaru/import/$id";
$list = array (
"arbre.txt",
"cond.txt",
"gestion.txt",
"planning.txt",
"profile.txt",
"res.txt",
"rules.txt",
"session.txt",
"task.txt",
"ug.txt",
"uprocs.txt",
"user.txt");
echo "toto";
foreach ($list as $value)
{
echo $value;
exec ("verif.ksh");

echo "titi";
#exec("[$?<>0] break");
echo "tutu";
}
echo "toto";
exec("mkdir $PATH1");
exec("rm -f $PATH1/*.txt");
foreach ($list as $value)
{
# exec("cp $PATH1/$value /exec/products/dollaru/XB2/files/$value",$t);
#exec("wget -O $PATH1/$value ftp://$_POST[login]:$_POST[password]@$_POST[hostname]/$_POST[path]/files/$value",$t);
exec("cp /exec/products/dollaru/$_POST[path]/files/$value $PATH1/$value",$t);
echo "Fichier $value copie<br>";
}
echo "<b><bR><font size=2>Creation des table dans la base de donnees et enregistrement des donnees</font><br></b>";
include('create.php');

}

else include('form_import.php');
?>
0