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

Shell et commandes GNU Discussion :

saut de ligne dans AWK


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Par défaut saut de ligne dans AWK
    bonjour,

    mon but est de convertir un fichier1 vers un fichier2.

    la partie que je n'arrive pas à convertir dans fichier1 est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    PWHTAB     tab1  1 1:20  1  1  1 3721.75     3108.77     
    PWHTAB     tab1  1 1:20  1  2  1 3541.77     2059.91     
    PWHTAB     tab1  1 1:20  1  3  1 3405.6      1398.56
    PWHTAB     tab1  1 1:20  2  1  1 4882.17     3809.3      
    PWHTAB     tab1  1 1:20  2  2  1 4769.46     2853.57
    Y'a pas toutes les valeurs mais normalement elle s'etale sur une ligne. il y a 20 par ligne dans ce cas.

    je dois arrivé à le convertir comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    29
    30
     
     1  1  1  1  3721.7  3108.8  3187.9  3324.4  3484.3 
                 3648.6  3809.3  3963.9  4114.1  4260.9 
                 4404.9  4547.2  4689.4  4832.5  4977.2 
                 5124.3  5274.5  5427.7  5584.9  5745.9 
    /
     1  1  2  1  3541.8  2059.9  2273.5  2545.6  2836.5 
                 3117.3  3389.6  3642.2  3881.2  4101.6 
                 4313.6  4519.1  4722.1  4924.3  5127.4 
                 5329.7  5534.5  5741.5  5952.6  6167.8 
    /
     1  1  3  1  3405.6  1398.6  1764.0  2142.2  2526.4 
                 2909.9  3282.4  3644.7  3996.6  4341.0 
                 4682.8  5020.6  5358.9  5687.9  6016.7 
                 6349.7  6677.6  7018.1  7367.5  7726.6 
    /
     1  2  1  1  4882.2  3809.3  3821.7  3909.7  4020.4 
                 4142.9  4269.4  4397.4  4526.5  4656.5 
                 4786.9  4919.0  5054.0  5191.0  5331.2 
                 5475.4  5622.9  5774.5  5930.5  6090.9 
    /
     1  2  2  1  4769.5  2853.6  2953.0  3144.0  3369.4 
                 3598.9  3821.6  4037.8  4238.3  4433.9 
                 4625.5  4810.0  4997.1  5185.3  5374.5 
                 5563.6  5755.4  5950.1  6148.0  6349.7 
    /
     1  2  3  1  4636.4  1637.5  1949.0  2295.2  2652.9 
                 3008.1  3351.7  3683.0  4005.3  4321.4 
                 4628.3  4931.5  5220.8  5505.7  5788.5 
                 6067.5  6339.8  6620.0  6904.8  7197.0
    j'ai ecrit un programme qui n'est pas finalisé encore suite à un prob:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    ($1=="PWHTAB") {
     
    	if(nomTab != " "){
    	ind = 8
    	}
    	else{ ind=7}
     
     
     
    for(itrTHP = 1; itrTHP <= NbElemP; itrTHP++){
    for(itrWcut = 1; itrWcut <= NbElemW; itrWcut++){
    for(itrGOR = 1; itrGOR <= NbElemGO; itrGOR++){
     
    printf(itrTHP);printf("  ");printf(itrWcut);printf("  ");printf(itrGOR);printf("  ");printf("1");printf("  ");
     
     
    multPDC=0
    nbItrMax= NbElemQ/4
    eps = nbItrMax - int(nbItrMax)
     
    while(multPDC<int(nbItrMax)){
    resPDC = 4 * multPDC
    if (multPDC == 0){
    printf($(ind+resPDC)); printf("  ");printf($(ind+resPDC+1)); printf("  ");printf($(ind+resPDC+2)); printf("  ");printf($(ind+resPDC+3));print("  ")
    		}
    	else{
     
    printf("            ");printf($(ind+resPDC)); printf("  ");printf($(ind+resPDC+1)); printf("  ");printf($(ind+resPDC+2)); printf("  ");printf($(ind+resPDC+3));print("  ")
    }
     
     
     
             multPDC=multPDC+1
     
                    }
     
                    if (eps>0.001){
    			y = 3
                    	nbEps = 4*eps
     
    		 	if(int(nbItrMax)==0){
    				y = 0
    				resPDC=0
    				ind=ind-1
    			}
     
    			for(m=1;m<=nbEps;m++){
    			printf($(ind+resPDC+y+m)); printf("  ")
     
    					}
     
    				}
     
    				print("/")
    				}
    			}
    		}
       }

    donne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    29
    30
     
    1  1  1  1  3721.75  3108.77  3187.86  3324.38  
                3484.28  3648.63  3809.34  3963.86  
                4114.07  4260.89  4404.93  4547.2  
                4689.41  4832.46  4977.19  5124.33  
                5274.54  5427.73  5584.91  5745.94  
    /
    1  1  2  1  3721.75  3108.77  3187.86  3324.38  
                3484.28  3648.63  3809.34  3963.86  
                4114.07  4260.89  4404.93  4547.2  
                4689.41  4832.46  4977.19  5124.33  
                5274.54  5427.73  5584.91  5745.94  
    /
    1  1  3  1  3721.75  3108.77  3187.86  3324.38  
                3484.28  3648.63  3809.34  3963.86  
                4114.07  4260.89  4404.93  4547.2  
                4689.41  4832.46  4977.19  5124.33  
                5274.54  5427.73  5584.91  5745.94  
    /
    1  2  1  1  3721.75  3108.77  3187.86  3324.38  
                3484.28  3648.63  3809.34  3963.86  
                4114.07  4260.89  4404.93  4547.2  
                4689.41  4832.46  4977.19  5124.33  
                5274.54  5427.73  5584.91  5745.94  
    /
    1  2  2  1  3721.75  3108.77  3187.86  3324.38  
                3484.28  3648.63  3809.34  3963.86  
                4114.07  4260.89  4404.93  4547.2  
                4689.41  4832.46  4977.19  5124.33  
                5274.54  5427.73  5584.91  5745.94

    autrement dit il lit la meme ligne qui commence par PWHTAB
    (du coup c'est le meme tableau qui est affiché à chaque fois!) or moi je veux que à chaque iteration il lit la ligne suivante comme dans l'exemple ci dessus. comment faire svp?


    Merci beaucoup pour votre aide...

    Cdt,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Par défaut
    Autrement dit comment faire l'increment en ligne et appliquer par conséquent ma fonction à chaque nouvelle ligne commençant par PWHTAB ?

    Merci

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2005, 09h35
  2. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 08h45
  3. Réponses: 2
    Dernier message: 03/12/2004, 09h27
  4. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  5. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 15h33

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