Bash trier un fichier texte avec sort

Integreur Messages postés 90 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai des fichiers textes qui ne sont pas bien mis en forme.J'aimerais savoir comment limiter un fichier texte a 50 caractères pour chaque ligne.Voici un exemple de ce que me donne mes fichiers textes :

ceci 
est un te
st
sur le
fichier
toto qui
doit s'aff
cher correctement
mai
s
ça
marche
pa
s
.


Ce que j'aimerais c'est pour chaque lignes, les assembler entre elles mais en dépassant pas plus de 50 caractères par lignes, ainsi on aurai le contenu du fichier texte qui s'affiche bien et non pas quelque chose de coupé est illisible comme dans l'exemple ci-dessus.Le but et d'avoir une sortie comme celle ci-dessous:

ceci est un test sur le fichier toto qui doit s'afficher correctement mais ça marche pas


Je suppose que sort ou awk peuvent etre utilisés ?

Merci

2 réponses

  1. Utilisateur anonyme
     
    salut,

    d'abord, ce que tu décris ne correspond pas à un tri, qui consiste à appliquer un ordre déterminé à une collection d'éléments; or, ici, l'ordre des mots ne semble pas devoir changer.

    ensuite, ce que tu veux faire n'est pas possible : c'est hors de portée du shell, ou de la plupart des codeurs, car cela nécessite une analyse syntaxique de la langue pour reconstituer correctement le message, et corriger les fautes d'orthographe.

    Je suppose que sort ou awk peuvent etre utilisés ?
    dommage, ce serait plutôt
    sed
    et
    fold
    ...
    mais ça ne fera pas de magie !
    1
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    fmt coupe les lignes respectant les mots mais va rajouter systématiquement un espace
    $ fmt -50 fichier
    ceci est un te st sur le fichier toto qui doit
    s'aff cher correctement mai s ça marche pa s .
    1