Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 17h46   #1
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Par défaut Découpage par ligne

Bonjour à tous,

avec sed ou awk, je cherche à découper des lignes en longueur fixe, de 30 caractères par exemple mais en évitant de tronquer un mot. C'est généralement un espace qui sépare deux mots :
Exemple :

Code :
1
2
3
4
....+....1....+....2....+....3....+....4....+....5....+....6....+....7
Je suis un enregistrement d'une longueur de 46                   
par contre moi je suis de 28                                     
C'est moi le grand frère car j'ai une longueur totale de ......65
je cherche donc à obtenir :

Code :
1
2
3
4
5
6
7
....+....1....+....2....+....3....+....4....+....5....+....6....+....7
Je suis un enregistrement       
d'une longueur de 46            
par contre moi je suis de 28    
C'est moi le grand frère car    
j'ai une longueur totale de     
......65
Est-ce possible ?
En vous remerciant d'avance.
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 19h43   #2
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Oui, c'est possible avec quelque chose comme :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
{
        mystring=""
        for ( i=1 ; i <= NF ; i++ )
        {
 
                if ( length(mystring $i ) > 30 )
                {
                        print mystring
                        mystring=""
 
                }
 
                if ( length(mystring) == 0   )
                {
                        mystring=mystring $i;
                }
                else
                {
                                mystring=mystring FS $i ;
 
                }
 
 
        }
        print mystring
}
C'est évidemment a raffiner
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2010, 04h22   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 059
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 059
Points : 4 111
Points : 4 111
fmt fait ça...
?
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2010, 08h28   #4
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Merci à tous les deux,

you rock !
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h31.


 
 
 
 
Partenaires

Hébergement Web