Ajouter un nouveau champs a un fichier csv
Résolu/Fermé
bendjiz
Messages postés
24
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
22 juin 2010
-
27 avril 2010 à 15:12
bendjiz Messages postés 24 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 22 juin 2010 - 28 avril 2010 à 13:09
bendjiz Messages postés 24 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 22 juin 2010 - 28 avril 2010 à 13:09
A voir également:
- Ajouter un nouveau champs a un fichier csv
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
3 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
27 avril 2010 à 15:31
27 avril 2010 à 15:31
Salut,
;-))
jp@MDK:~/tmpfs ssh$ cat ben toto;titi;tata;... dada; mimi;.... roro; riri; tomi;popo;... jp@MDK:~/tmpfs ssh$ sed -i.bak 's/$/;23-01-1998/' ben jp@MDK:~/tmpfs ssh$ cat ben toto;titi;tata;...;23-01-1998 dada; mimi;....;23-01-1998 roro; riri; tomi;popo;...;23-01-1998 jp@MDK:~/tmpfs ssh$ cat ben.bak toto;titi;tata;... dada; mimi;.... roro; riri; tomi;popo;... jp@MDK:~/tmpfs ssh$
;-))
al_right
Messages postés
140
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
7 mai 2011
9
27 avril 2010 à 16:39
27 avril 2010 à 16:39
en bash, je sais pas (bien que ce doit être similaire), mais en Perl
Voilà, j'ai pas testé mais ça devrai le faire.
Si maintenant, c'est les toto ou rara qui représente les nom de fichiers que tu dois dater à leur dernière modif,
adapte en placant dans la boucle foreach la ligne
my $datefile = (stat($file))[9];
en dégageant $file par une reconnaissance de motif ou un split(/;/, $l)
#!/usr/bin/perl -w use strict; use warnings; my $file= "fichier.csv"; my $fout = "sortie_$file"; my $datefile = (stat($file))[9]; open F, "$file" or die "ouverture de $file impossible $!"; my @contenu = <F>; close F || die "Fermeture de $file impossible $!"; foreach $l(@contenu) { chomp $l; #$nl.= "$datefile\n"; $nl = "$l" . "$datefile\n"; push @nwcontenu, $nl; } open FOUT, ">$fout" or die "Ouverture de $fout impossible $!"; print FOUT @nwcontenu; close FOUT || die "Fermeture de $fout impossible $!"; END;
Voilà, j'ai pas testé mais ça devrai le faire.
Si maintenant, c'est les toto ou rara qui représente les nom de fichiers que tu dois dater à leur dernière modif,
adapte en placant dans la boucle foreach la ligne
my $datefile = (stat($file))[9];
en dégageant $file par une reconnaissance de motif ou un split(/;/, $l)
bendjiz
Messages postés
24
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
22 juin 2010
27 avril 2010 à 18:09
27 avril 2010 à 18:09
Merci beaucoup pour ta reactivité al_right
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 28/04/2010 à 11:57
Modifié par lami20j le 28/04/2010 à 11:57
Salut,
Si je peux me permettre
Si je peux me permettre
#!/usr/bin/perl use strict; use warnings; my $file= "fichier.csv"; my $fout = "sortie_$file"; open F, "$file" or die "ouverture de $file impossible $!"; open FOUT, ">$fout" or die "Ouverture de $fout impossible $!"; my $datefile = (stat($file))[9]; my ($d,$m,$a)=(localtime($datefile))[3..5]; $m=sprintf("%02d",$m+1); $a+=1900; foreach my $l(<F>) { chomp $l; print FOUT "$l;$d-$m-$a\n"; } END;
bendjiz
Messages postés
24
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
22 juin 2010
28 avril 2010 à 13:08
28 avril 2010 à 13:08
merci
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
28 avril 2010 à 10:39
28 avril 2010 à 10:39
hello
une version avec awk
une version avec awk
$ ls -ln a1 -rw-r--r-- 1 1000 1000 61 1999-11-22 11:22 a1 $ $ awk '!x {a="date -r " FILENAME " +\"%d-%m-%Y\""; a |getline date ; x++};{ print $0 ";" date}' a1 toto;titi;tata;...;22-11-1999 dada; mimi;....;22-11-1999 roro; riri; tomi;popo;...;22-11-1999 $
bendjiz
Messages postés
24
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
22 juin 2010
28 avril 2010 à 13:09
28 avril 2010 à 13:09
merci pour ta reponse
27 avril 2010 à 17:32
mais quand j'utilise le sed -i je reçois une erreur ainsi libéllé: sed: illegal option --i . Aussi je souhaiterais que tu m'aides à savoir comment insérer la commande stat -c '%y' zac.csv qui me renvoie la date de la derniere modification du fichier zac.csv dans le script que tu m'a envoyé. Encore merci de m'aider
Modifié par jipicy le 27/04/2010 à 17:56
Quelle version de sed ?
Si l'option "-i" n'existe pas il faut rediriger la sortie vers un fichier temporaire et écraser l'original par la suite...
Édit :
:-))
27 avril 2010 à 18:08
27 avril 2010 à 18:10
Non ! Le forum est largement plus efficace qu'un individu tout seul ;-\
27 avril 2010 à 18:33