IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Ajout de lignes en début et fin de plusieurs fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Ajout de lignes en début et fin de plusieurs fichiers
    Bonjour ou bonsoir à tous,

    J'explique mon problème, j'ai une centaine de fichiers html (Donc nommés ***.hmtl) et dedans, je n'ai pas les balises de début et de fin.

    J'aimerais ajouter ces balises avec un petit bash.

    Au début je souhaite intégrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="robots" content="noindex, nofollow, noarchive"/>
     
     
    <title>Dupont -  Messages </title>
    <link rel="stylesheet" href="style.css" type="text/css"/>
     
    </head>
    <body>
    <div id="bdiv">
    <table id="btab"><tr>
    <td id="lhs">
    <img width="200" src="../photo/profile.jpg"/>
    <div id="tabs"><a href="profile.html">Profil</a> <a href="wall.html">mur</a> <a href="photos.html">Photos</a> <a href="friends.html">Amis</a> <b>Messages</b> </div>
    </td>
    <td id="rhs">
    <h1>Dupont</h1>
    <div id="content" class="tabmessages">
    et à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    </div>
    </td></tr></table>
    <div class="downloadnotice">Downloaded by Dupont (<a href="http://www.facebook.com/dupont">http://www.facebook.com/dupont</a>) on 15 janvier 2013 à 10:40</div>
    </div>
    </body>
    </html>
    J'ai mis ces bouts de code dans les fichiers "debut.txt" et "end.txt".

    J'ai ensuite tenter la commande :

    pour ajouter automatiquement à la fin, mais ça me dit : Redirection ambiguë

    Et pour ajouter au début, j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "1i\debut.txt" >> *.html
    mais je sais pas si on peut ajouter un fichier avec la commande sed et surtout, j'ai la même erreur que pour mon cat...

    Je débute avec les commandes bash et donc je ne sais pas trop quoi faire avec ce redirection ambiguë :/

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Bonjour,

    effectivement, le shell ne peut pas effectuer de redirection sur plusieurs fichiers.

    si tous les fichiers sont dans un seul répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for f in *.html; do <taCommande> "$f"; done
    s'ils sont dispersés dans des sous-répertoires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $repSrc -type f -iname "*.html" -exec <taCommande> {} \;
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour cette réponse rapide !

    J'étais presque arrivé à la bonne commande, il me manquait les " " autour de ma variable...

    Le cat a bien fonctionné mais pour le sed, comme j'avais un peu peur, il ma répondu "Pas de fichiers en entrée" :/
    Une idée comment ajouter un fichier en début d'un autre fichier ?

    Sinon je prend le contenu de mon fichier, je le met sur une ligne directement dans la commande mais c'est moins pratique.

    (Et sorry pour le post au mauvais endroit).

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    pour faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for f in *.html
    do cat debut.txt "$f" fin.txt > /tmp/myTmpFile
       mv /tmp/myTmpFile "$f"
    done
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ah ouais, si simple mais il fallait y penser...

    C'est là que je vois que j'ai pas la logique de programmation

    Un grand merci en tout cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter une ligne en début de fichier
    Par MB_MathemaTeX dans le forum Général Python
    Réponses: 4
    Dernier message: 20/03/2010, 18h02
  2. Inserer une ligne vide a la fin d'un fichier
    Par zorooo dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/12/2009, 11h36
  3. Ajouter un caractère en début et fin de cellule
    Par snoopy69 dans le forum Excel
    Réponses: 2
    Dernier message: 09/12/2008, 20h01
  4. Réponses: 2
    Dernier message: 21/10/2008, 10h46
  5. Réponses: 19
    Dernier message: 10/07/2007, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo