Script shell qui sépare les initiales

Bonjour tout le monde,
je bloque sur un exo, j'aimerais bien avoir de l'aide, merci.

Je dois ecrire un script sepi qui prend un dictionnaire en argument et produit un fichier contenant les mêmes mots, dans le même ordre, où une ligne blanche a été insérée a chaque changement d'initiale, c'est-à -dire entre les mots commencant par la lettre a et ceux commencant par la lettre b, etc.

merci pour l'aide

4 réponses

  1. #!/bin/bash
    #liste jusqu'a z
    liste="a b c d e f g"

    for var in $liste
    do
    #$1 est l'arg dictionnaire et $2 le fichier crée avec le separateur ligne blanche
    egrep "^$var" $1 >> $2.txt
    echo "" >> $2.txt
    done
    1. Modérateur
      $ cat ldk 
      abandonner                   
      accord                       
      affaire                      
      anglais                      
      appartenir
      arriere
      attaquer
      aussitot
      avenir
      bientot
      bureau
      casser
      cesser
      
      $ sed -n '$p;N;/^\(.\).*\n\1.*/{P;D};s/\n/&&/p;' ldk
      abandonner
      accord
      affaire
      anglais
      appartenir
      arriere
      attaquer
      aussitot
      avenir
      
      bientot
      bureau
      
      casser
      cesser

      ;-))
      1. oui
        AVANT:
        abandonner
        accord
        affaire
        anglais
        appartenir
        arriere
        attaquer
        aussitot
        avenir
        bientot
        bureau
        casser
        cesser

        APRES:
        abandonner
        accord
        affaire
        anglais
        appartenir
        arriere
        attaquer
        aussitot
        avenir

        bientôt
        bureau

        casser
        cesser
        1. Modérateur
          Salut,

          T'as un exemple concret AVANT => APRÈS s'il te plait merci ;-))