Concatenation csh

LCoileux -  
Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je débute en csh, et j'aurais voulu savoir comment rajouter une chaine de caractères au début d'un fichier non vide. Je sais que la commande >> ajoute une chaine, mais en fin de fichier.
De plus, est-il possible de copier un fichier texte en supprimant une certaine ligne de ce fichier ?
Merci de votre aide.

6 réponses

  1. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
     
    Bonjour,
    Pour supprimer une ligne :
    Darkito >cat totof
    toto un
    titi deux
    tata trois
    Darkito >sed '2d' totof
    toto un
    tata trois
    
    
    
    
    (ici on supprimera le 2ème ligne)
    0
  2. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
     
    Pour ajouter une chaine de caractère

    Darkito >cat totof
    toto un
    titi deux
    tata trois
    Darkito > sed '1 s@\(.*\)@Ajout\n\1@' totof
    Ajout
    toto un
    titi deux
    tata trois
    

    0
  3. LCoileux
     
    Merci bien
    et comment fait-on pour rediriger cette commande dans ce fichier ? J'essaie avec les pipe mais pour l'instant j'y arrive pas...
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
     
    Pour l'insertion, il y a même plus simple (je viens de découvrir ça à l'instant)
    Darkito >cat totof
    toto un
    titi deux
    tata trois
    Darkito >sed '1 i\Ajout' totof
    Ajout
    toto un
    titi deux
    tata trois
    
    
    0
  6. LCoileux
     
    Merci beaucoup
    et dis moi, comment dois-je faire pour comparer la 1ere ligne d'un fichier avec une phrase ?
    Quand je fais par exemple

    if (`head -1 $fichier1`=="blablabla") then
    echo "vrai"
    else echo "faux"
    endif

    il verifie bien si la premiere ligne est "blablabla". Mais si c'est "blablabla bla", il me repond faux; et je n'y arrive pas en faisant "...== "blablabla *".

    Bref, je voudrais qu'il regarde si le premier mot est bien "blablabla", et quel que soit la suite. Si je met "...=="blablabla*"", ca ne marche pas. Comment faire ?
    0
    1. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
       
      J'ai linux qu'au boulot donc je peux pas vérifier
      il doit y avoir plus simple avec une expression régulière mais tu peux essayer :
      if(`head -1 $fichier1 | grep blablabla >/dev/null`) then
      0