A voir également:
- Script shell unix pour modifier un fichier
- Modifier dns - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Modifier liste déroulante excel - Guide
11 réponses
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
15 déc. 2006 à 20:34
15 déc. 2006 à 20:34
Salut,
voilà avec perl en ligne de commande
dans ce cas je préfère quand même la version de jipicy (en plus c'est shell qui est demandé, même pas sed :-DDD )
on peut dire merci aussi à jisisv pour sa solution
ma solution s'en fiche de ce qu'il y a écrit en entête
il lit la 1ère ligne quelque soit son contenu
le fichier d'origine ne change pas
je stocke le résultat dans le fichier resultat
lami20j
voilà avec perl en ligne de commande
dans ce cas je préfère quand même la version de jipicy (en plus c'est shell qui est demandé, même pas sed :-DDD )
on peut dire merci aussi à jisisv pour sa solution
ma solution s'en fiche de ce qu'il y a écrit en entête
il lit la 1ère ligne quelque soit son contenu
le fichier d'origine ne change pas
je stocke le résultat dans le fichier resultat
perl -ne '/(.*)/ if 1..1;print"$1 $_"if 2..eof' fichier > resultat--
lami20j
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
15 déc. 2006 à 12:50
15 déc. 2006 à 12:50
Avec perl
Johan
johan@johan:~/src/perl$ cat entete.pl #!/usr/bin/perl -w $entete=<>; chomp($entete); while(<>) { print $entete. ' '. $_; } johan@johan:~/src/perl$ ./entete.pl entete.pl #!/usr/bin/perl -w $entete=<>; #!/usr/bin/perl -w chomp($entete); #!/usr/bin/perl -w while(<>) #!/usr/bin/perl -w { #!/usr/bin/perl -w print $entete. ' '. $_; #!/usr/bin/perl -w }
Johan
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
15 déc. 2006 à 16:32
15 déc. 2006 à 16:32
Salut,
sed -i "1d;s/.*/entête &/" fichier;-))
merci jp !
par contre comment je dis que entete c'est la 1ere ligne du fichier ?
(tu l'auras deviné, je suis pas balaize en sed ;-))
par contre comment je dis que entete c'est la 1ere ligne du fichier ?
(tu l'auras deviné, je suis pas balaize en sed ;-))
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
15 déc. 2006 à 21:41
15 déc. 2006 à 21:41
Re-
Je suis pas sûr d'avoir tout compris là ;-\
Ce que je comprends c'est que tu ne sais pas ce qui se trouve dans la première ligne de ton fichier ? Si c'est ça alors :
Je suis pas sûr d'avoir tout compris là ;-\
Ce que je comprends c'est que tu ne sais pas ce qui se trouve dans la première ligne de ton fichier ? Si c'est ça alors :
var=$(sed -n 1p fichier.txt) && sed '1d;s/.*/'$var' &/' fichier.txt;-))
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
16 déc. 2006 à 10:36
16 déc. 2006 à 10:36
Salut,
tu n'a pas oublié l'option -i pour la modification sur place?!
tu n'a pas oublié l'option -i pour la modification sur place?!
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
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
16 déc. 2006 à 10:50
16 déc. 2006 à 10:50
Salut,
Oui et non ;-))
Disons que quand je fais mes essais je ne l'utilise pas toujours, et donc quand je copie/colle ma ligne de commande, elle y est ou elle n'y est pas ;-))
Merci de l'avoir souligné ;-)
Oui et non ;-))
Disons que quand je fais mes essais je ne l'utilise pas toujours, et donc quand je copie/colle ma ligne de commande, elle y est ou elle n'y est pas ;-))
Merci de l'avoir souligné ;-)
une dernière chose les gars !? 2 en fait ;-)
1.après l'entête sur chaque ligne s'ajoute un caractère ^M; comment faire pour le virer ?
2. pkoi j'arrive pas à mettre cette mm ligne de commande dans un shell ? (avec $1 comme nom de fichier)
merci
a+
1.après l'entête sur chaque ligne s'ajoute un caractère ^M; comment faire pour le virer ?
2. pkoi j'arrive pas à mettre cette mm ligne de commande dans un shell ? (avec $1 comme nom de fichier)
merci
a+
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
19 déc. 2006 à 20:28
19 déc. 2006 à 20:28
Salut,
1 - Le ^M ([CTRL+V] + [CTRL+M]) est la représentation du retour chariot sous Windows. Pour le virer il suffit de faire (en tapant les caractères comme signifié ci-dessus) :
;-))
1 - Le ^M ([CTRL+V] + [CTRL+M]) est la représentation du retour chariot sous Windows. Pour le virer il suffit de faire (en tapant les caractères comme signifié ci-dessus) :
sed 's/^M$//' fichier2 - Affiche nous ton script qu'on essaie de voir ce qui cloche.
;-))
Bonjour,
Je doit réaliser un script qui me lit des informations sur deux fichiers différents pour les concaténer ensuite dans un troisième fichier.
Mon problème est que je dois extraire une adresse Mac du premier fichier et il est de la forme: 0-12-3F-BD-50-21
Pour ensuite l'utiliser dans le deuxième fichier afin d'extraire l'adresse IP correpondant: sauf que dans le deuxième fichier ce même adresse MAC est de la forme: 00:12:3f:bd:50:21
Il me faut dont une commande pour transformer les"-" en":" , les"majuscule" en "minuscule" et aussi ajouter un zero devant.
Merçi.
Je doit réaliser un script qui me lit des informations sur deux fichiers différents pour les concaténer ensuite dans un troisième fichier.
Mon problème est que je dois extraire une adresse Mac du premier fichier et il est de la forme: 0-12-3F-BD-50-21
Pour ensuite l'utiliser dans le deuxième fichier afin d'extraire l'adresse IP correpondant: sauf que dans le deuxième fichier ce même adresse MAC est de la forme: 00:12:3f:bd:50:21
Il me faut dont une commande pour transformer les"-" en":" , les"majuscule" en "minuscule" et aussi ajouter un zero devant.
Merçi.
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
>
Dieng
22 mai 2007 à 10:08
22 mai 2007 à 10:08
Salut,
$ echo $var 0-12-3F-BD-50-21 $ echo $var | tr 'A-Z' 'a-z' | sed 's/-/:/g;s/.*/0&/' 00:12:3f:bd:50:21;-))
Dieng
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
22 mai 2007 à 15:58
22 mai 2007 à 15:58
Merçi,
ça marche.
thanks you very much!!!!!
ça marche.
thanks you very much!!!!!
salut jipicy,
2. c'est bon, j'ai vu, ça marche
1. ben y'a tjs des ^M dans le fichier après ta commande... !???
2. c'est bon, j'ai vu, ça marche
1. ben y'a tjs des ^M dans le fichier après ta commande... !???
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
20 déc. 2006 à 16:36
20 déc. 2006 à 16:36
Salut,
essaie
lami20j
essaie
perl -pi.orig -e 's/\r//' fichier--
lami20j