| Script shell unix pour modifier un fichier par fab |
vendredi 15 décembre 2006 à 12:12:18 |
Configuration: Windows XP Internet Explorer 6.0
Avec perl
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 Gates gave you the windows. GNU gave us the whole house.(Alexandrin) |
Salut, sed -i "1d;s/.*/entête &/" fichier;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
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 ;-)) |
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 perl -ne '/(.*)/ if 1..1;print"$1 $_"if 2..eof' fichier > resultat-- lami20j |
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 : var=$(sed -n 1p fichier.txt) && sed '1d;s/.*/'$var' &/' fichier.txt;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
Merci ! c'est exactement ce dont j'avais besoin ! |
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+ |
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) : sed 's/^M$//' fichier2 - Affiche nous ton script qu'on essaie de voir ce qui cloche. ;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
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... !??? |
Salut,
essaie perl -pi.orig -e 's/\r//' fichier-- lami20j |
merci,
je l'ai fait avec dos2unix |
| 18/11 15h14 | Exécuter un script shell | Shell |
| 08/11 22h53 | [Shell] Transferer des fichiers via ssh | Shell |
| 03/11 18h56 | [Shell] Créer un fichier vide | Bash |
| 29/12 20h42 | Guide d'utilisation du Shell pour débutant | Shell |
| 05/01 18h57 | Sed - Supprimer une ou plusieurs lignes d'un fichier | Sed |
| 26/05 18h22 | script shell: fonction taille fichier/dossier | Linux/Unix | 29/05 18h15 | 4 |
| 17/06 14h48 | cours sur open source et script shell unix | Programmation | 17/06 15h35 | 1 |
| 17/05 22h22 | script shell répartition de fichiers en tar | Linux/Unix | 18/05 12h03 | 2 |
| 27/06 16h58 | [Shell Unix] modifier une chaine de caractère | Programmation | 28/06 04h58 | 2 |
![]() | CygWin - Cygwin est un environnement UNIX pour Windows composé: d'un shell Unix d'une librairie dynamique (DLL) chargée de... | Catégorie: Développement Licence: Open Source |
![]() | GPG - GPG (GNU privacy guard) est une alternative libre au logiciel PGP. Ce logiciel permet de chiffrer des documents avec un haut... | Catégorie: Chiffrement Licence: Open Source |
![]() | WinMerge - WinMerge est un outil libre permettant de comparer visuellement des fichiers textes et de simplifier la fusion de leurs... | Catégorie: Développement Licence: Open Source |
![]() | Unison - Unison est un logiciel de synchronisation de répertoires. Il est capable de travailler de manière bidirectionnelle, c'est... | Catégorie: Gestion de fichiers Licence: Open Source |