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

Linux Discussion :

ajout ligne en queue d'un fichier sous UNIX


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut ajout ligne en queue d'un fichier sous UNIX
    Bonjour,

    je cherche à ajouter une ligne en fin d'un fichier texte sous UNIX (en batch); cette ligne doit contenir un identifiant "FIN" suivi de "|" suivi du nombre de lignes du fichier, suivi de "|"
    Je sais que pour avoir le nombre de lignes il faut faire un wc -l nom_fichier.
    Cela me retournera 1000 si il y a 1000 lignes dans le fichier.
    Mais pour ajouter la dernière contenant : "ENT|1000|", comment faire de façon efficace ?

    Merci d'avance pour votre réponse.


  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Avez-vous essayé quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "ENT|1000|..." >> monfichier

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut ajout ligne en queue d'un fichier UNIX
    Citation Envoyé par alain.couthures Voir le message
    Avez-vous essayé quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "ENT|1000|..." >> monfichier
    oui, mais 1000 représentant le nombre de lignes du fichier, comment récupérer le résultat de la commande wc -l nom_fichier pour la mettre dans la commande echo que vous me proposez ?

    Merci d'avance.


  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Là il faut utiliser les apostrophes inversées : `wc -l nom_fichier`

    Essayez-donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "ENT|"`wc -l nom_fichier`"|..." >> nom_fichier

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Là il faut utiliser les apostrophes inversées : `wc -l nom_fichier`

    Essayez-donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "ENT|"`wc -l nom_fichier`"|..." >> nom_fichier
    Merci beaucoup,

    J'ai essayé et cela donne un ajout d'une dernière ligne :
    ENT|1000 nom_fichier|

    c'est pas mal, mais je voudrais avoir
    ENT|1000|
    en effet quand je fais wc -l nom_fichier, cela donne
    1000 nom_fichier

    que faire ?

    Merci d'avance


  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Super_Didji Voir le message
    Merci beaucoup,

    J'ai essayé et cela donne un ajout d'une dernière ligne :
    ENT|1000 nom_fichier|

    c'est pas mal, mais je voudrais avoir
    ENT|1000|
    en effet quand je fais wc -l nom_fichier, cela donne
    1000 nom_fichier

    que faire ?

    Merci d'avance

    J'ai essayé ceci
    echo "ENT|"`wc -l nom_fichier | awk '{print $1}'`"|" >>nom_fichier
    et j'obtiens
    ENT|1000|

    cela a l'air bon, mais j'avoue ne pas comprendre ; pouvez vous m'éclairer ?

    merci


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

Discussions similaires

  1. Ajout ligne aprés N°ligne précis dans fichier txt
    Par dubinc38 dans le forum VBScript
    Réponses: 12
    Dernier message: 24/02/2009, 08h09
  2. Verouillage fichier sous UNIX
    Par bigben99 dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h07
  3. Notification de modification de fichier sous unix en java
    Par deomis dans le forum Général Java
    Réponses: 6
    Dernier message: 20/06/2006, 14h43
  4. Concaténation de fichiers sous UNIX?
    Par airmax77 dans le forum Linux
    Réponses: 4
    Dernier message: 27/01/2006, 16h23
  5. Réponses: 7
    Dernier message: 20/09/2005, 17h47

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