rss
Fichier Shell UnixPlus
Script shell unix pour modifier un fichier
par fab
 Fil de Discussions
Statut : Non résolu
vendredi 15 décembre 2006 à 12:12:18
Script shell unix pour modifier un fichier
Bonjour,
je cherche comment écrire un script shell pour modifier un fichier; en gros mon fichier source ressemble à:
entête
ligne 1
ligne 2
...
Et moi je voudrais obtenir un nouveau fichier avec:
entête ligne 1
entête ligne 2
...

merci de votre aide
Configuration: Windows XP
Internet Explorer 6.0
Répondre à fab  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jisisv, le vendredi 15 décembre 2006 à 12:50:53 Fil de Discussions
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)
Répondre à jisisv

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le vendredi 15 décembre 2006 à 16:32:10 Fil de Discussions
Salut,
sed -i "1d;s/.*/entête &/" fichier
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fab, le vendredi 15 décembre 2006 à 16:54:59 Fil de Discussions
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 ;-))
Répondre à fab

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le vendredi 15 décembre 2006 à 20:34:28 Fil de Discussions
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
Répondre à lami20j

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le vendredi 15 décembre 2006 à 21:41:04 Fil de Discussions
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é.
Répondre à jipicy

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le samedi 16 décembre 2006 à 10:36:20 Fil de Discussions
Salut,

tu n'a pas oublié l'option -i pour la modification sur place?! lami20j
Répondre à lami20j

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le samedi 16 décembre 2006 à 10:50:58 Fil de Discussions
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é ;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fab, le lundi 18 décembre 2006 à 10:15:39 Fil de Discussions
Merci ! c'est exactement ce dont j'avais besoin !
Répondre à fab

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fab, le mardi 19 décembre 2006 à 19:04:43 Fil de Discussions
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+
Répondre à fab

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le mardi 19 décembre 2006 à 20:28:20 Fil de Discussions
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$//' fichier
2 - 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é.
Répondre à jipicy

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Dieng, le mardi 22 mai 2007 à 09:51:46 Fil de Discussions
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.
Répondre à Dieng

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le mardi 22 mai 2007 à 10:08:36 Fil de Discussions
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
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Dieng, le mardi 22 mai 2007 à 15:58:04 Fil de Discussions 
Merçi,

ça marche.

thanks you very much!!!!!
Répondre à Dieng

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fab, le mercredi 20 décembre 2006 à 16:29:37 Fil de Discussions
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... !???
Répondre à fab

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le mercredi 20 décembre 2006 à 16:36:43 Fil de Discussions
Salut,

essaie
perl -pi.orig -e 's/\r//' fichier
--
lami20j
Répondre à lami20j

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fab, le mercredi 20 décembre 2006 à 16:53:57 Fil de Discussions
merci,
je l'ai fait avec dos2unix
Répondre à fab
Discussions pertinentes trouvées dans le forum
26/05 18h22script shell: fonction taille fichier/dossierLinux/Unix29/05 18h154
17/06 14h48cours sur open source et script shell unixProgrammation17/06 15h351
17/05 22h22script shell répartition de fichiers en tarLinux/Unix18/05 12h032
27/06 16h58[Shell Unix] modifier une chaine de caractèreProgrammation28/06 04h582
Plus de discussions sur « Script shell unix pour modifier un fichier » Discussion en cours Discussion fermée Problème résolu
Logiciels pertinents trouvés dans les téléchargements
Télécharger CygWin 1.5.24-2CygWin - 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
Télécharger GPG 1.4.7GPG - 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
Télécharger WinMerge 2.8.4WinMerge - 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
Télécharger Unison 2.24.6Unison - 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
Plus de logiciels gratuits sur « Script shell unix pour modifier un fichier »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide