[Shell-Perl]-Ajouter données en tête de ligne
Fermé
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
-
15 mai 2007 à 11:32
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 16 mai 2007 à 13:35
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 16 mai 2007 à 13:35
A voir également:
- [Shell-Perl]-Ajouter données en tête de ligne
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Apparaitre hors ligne instagram - Guide
- Aller à la ligne excel - Guide
- Ajouter un compte gmail - Guide
7 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 894
15 mai 2007 à 12:21
15 mai 2007 à 12:21
Salut,
#! /bin/bash DATE=$(date "+%d/%m/%y-%k:%M") while read line do sed "s|^|$DATE |" $1 > $2 done < $1;-))
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 567
15 mai 2007 à 12:31
15 mai 2007 à 12:31
Salut,
je n'ai pas testé
je n'ai pas testé
cat fichier | perl -ne 's/^/system("date", "+%d/%m/%y-%k:%M") . " :" /e';print' >> fichier.log
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
15 mai 2007 à 13:46
15 mai 2007 à 13:46
Après avoir supprimé le ' après print, il ne m'imprime rien en sortie (je teste sans la redirection)...
cat cfg-jb.sh | perl -ne 's/^/system("date", "+%y%m%d-%H%M%S").":"/e';print
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 567
>
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
15 mai 2007 à 14:33
15 mai 2007 à 14:33
c'est moi qui s'est trompé :-))
c'est l'apostrophe e qu'il fallait supprimer
cat fichier | perl -ne 's/^/system("date", "+%d/%m/%y-%k:%M") . " :" /e;print' >> fichier.log
c'est l'apostrophe e qu'il fallait supprimer
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
15 mai 2007 à 14:49
15 mai 2007 à 14:49
Presque !
070515-144512
0:quit
070515-144512
0:fin
Je sais pas d'où sort le crlf+zéro ! J'ai essayé aussi sans la concaténation du :, mais c'est pareil, j'ai un crlf+0
A+ Blux
070515-144512
0:quit
070515-144512
0:fin
Je sais pas d'où sort le crlf+zéro ! J'ai essayé aussi sans la concaténation du :, mais c'est pareil, j'ai un crlf+0
cat cfg-jb.sh | perl -ne 's/^/system("date", "+%y%m%d-%H%M%S") . ":"/e;print'--
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
>
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
15 mai 2007 à 14:54
15 mai 2007 à 14:54
il faut rajouter \c dans le format de la date pour rester sur la ligne
cat cfg-jb.sh | perl -ne 's/^/system("date", "+%y%m%d-%H%M%S\c") . ":"/e;print'
cat cfg-jb.sh | perl -ne 's/^/system("date", "+%y%m%d-%H%M%S\c") . ":"/e;print'
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
>
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
15 mai 2007 à 15:04
15 mai 2007 à 15:04
Non plus (pas chez moi, en tous cas) :
Unmatched right curly bracket at -e line 1, within string
Missing right curly or square bracket at -e line 1, at end of line
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
cat cfg-jb.sh | perl -ne 's/^/system("date", "+%y%m%d-%H%M%S\c") . ":"/e;print'syntax error at -e line 1, at EOF
Unmatched right curly bracket at -e line 1, within string
Missing right curly or square bracket at -e line 1, at end of line
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
15 mai 2007 à 12:50
15 mai 2007 à 12:50
Merci, je vais voir lequel est le plus adapté à mon usage.
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 567
15 mai 2007 à 15:59
15 mai 2007 à 15:59
essaie d'abord comme ça
lami20j
perl -ne 's/^/system("date")/e;print' cfg-jb.sh--
lami20j
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
15 mai 2007 à 16:01
15 mai 2007 à 16:01
mar 15 mai 16:00:24 DFT 2007
0quit
mar 15 mai 16:00:24 DFT 2007
0fin
0quit
mar 15 mai 16:00:24 DFT 2007
0fin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 567
15 mai 2007 à 16:06
15 mai 2007 à 16:06
et ça?
je suis au boulot et je ne peux pas tester ce que j'écrit
lami20j
je suis au boulot et je ne peux pas tester ce que j'écrit
perl -ne ' print system("date") . " $_"' cfg-jb.sh--
lami20j
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 567
15 mai 2007 à 19:51
15 mai 2007 à 19:51
Voilà la solution en Perl
lami20j@debian:~/trash$ cat fichier ligne 1 ligne 2 ligne 3 ligne 4 ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 $ perl -ne '$t=qx/date +%y%m%d-%H%M%S/;chomp($t);print $t . "> $_"' fichier 070515-195405> ligne 1 070515-195405> ligne 2 070515-195405> ligne 3 070515-195405> ligne 4 070515-195405> ligne 5 070515-195405> ligne 6 070515-195405> ligne 7 070515-195405> ligne 8 070515-195405> ligne 9 070515-195405> ligne 10ou avec les apostrophes inverses
$ perl -ne '$t=`date +%y%m%d-%H%M%S`;chomp($t);print $t . "> $_"' fichier 070515-195618> ligne 1 070515-195618> ligne 2 070515-195618> ligne 3 070515-195618> ligne 4 070515-195618> ligne 5 070515-195618> ligne 6 070515-195618> ligne 7 070515-195618> ligne 8 070515-195618> ligne 9 070515-195618> ligne 10
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
15 mai 2007 à 22:05
15 mai 2007 à 22:05
Ca marche aussi si le fichier vient d'un cat $1 (voir message 17) ? car je n'ai pas le choix du type d'entrée :-(
C'est un programme pour lequel je dois traiter les logs qui sont envoyés sous la forme $1 au cours de son exécution...
C'est un programme pour lequel je dois traiter les logs qui sont envoyés sous la forme $1 au cours de son exécution...
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 567
15 mai 2007 à 22:10
15 mai 2007 à 22:10
$ cat fichier ligne 1 ligne 2 ligne 3 ligne 4 ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 $ cat fichier | perl -ne '$t=qx/date +%y%m%d-%H%M%S/;chomp($t);print $t . "> $_"' 070515-221224> ligne 1 070515-221224> ligne 2 070515-221224> ligne 3 070515-221224> ligne 4 070515-221224> ligne 5 070515-221224> ligne 6 070515-221224> ligne 7 070515-221224> ligne 8 070515-221224> ligne 9 070515-221224> ligne 10 $ cat blux.sh #!/bin/bash cat $1 | perl -ne '$t=qx/date +%y%m%d-%H%M%S/;chomp($t);print $t . "> $_"' $ sh blux.sh fichier 070515-221336> ligne 1 070515-221336> ligne 2 070515-221336> ligne 3 070515-221336> ligne 4 070515-221336> ligne 5 070515-221336> ligne 6 070515-221336> ligne 7 070515-221336> ligne 8 070515-221336> ligne 9 070515-221336> ligne 10
blux
Messages postés
25924
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 mars 2024
3 281
16 mai 2007 à 13:12
16 mai 2007 à 13:12
Merci ça le fait bien, maintenant...