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 :

Lire un fichier Ascii ou texte, donnees en bloc pas en colonnes


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2011
    Messages : 58
    Points : 32
    Points
    32
    Par défaut Lire un fichier Ascii ou texte, donnees en bloc pas en colonnes
    Bonjour a tous,

    J'ai un gros fichier ASCII dans lequel les donnees sont disposees de cette facon:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    246.00000000
     
      -999.250000 246.00000000 245.99255371  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1059999987  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     246.50000000
     
      -999.250000 246.50000000 246.49253845  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1072999984  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     247.00000000
     
      -999.250000 247.00000000 246.99252319  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1076000035  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     247.50000000
     
      -999.250000 247.50000000 247.49250793  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1077999994  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     248.00000000
     
      -999.250000 248.00000000 247.99249268  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1042999998  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     248.50000000
     
      -999.250000 248.50000000 248.49247742  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1036000028  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     249.00000000
     
      -999.250000 249.00000000 248.99246216  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1037999988  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     249.50000000
     
      -999.250000 249.50000000 249.49244690  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1059999987  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     250.00000000
     
      -999.250000 250.00000000 249.99243164  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1102000028  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     250.50000000
     
      -999.250000 250.50000000 250.49241638  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1156999990  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000
    le probleme c'est que chaque variable n'est pas dans une colonne separee. Par exemple la premiere variable est la premiere valeur de chaque bloc ( 246.00000000, 246.50000000, 247.00000000....etc).
    Ma question c'est comment lire ce fichier et avoir chaque variable independemment des autres avec des commandes linux comme awk, sed, grep, dans un shell. Au total j'ai 29 variables.

    Merci d'avance

    Fateh

    Merci d'avance

    Fateh

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Pas tout compris: pourrais-tu donner un exemple de résultat final ?
    Cordialement.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut




    quel est le couillon qui a pondu un format de sortie aussi pourri ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour,

    le dernier bloc n'a que 26 variables. Est-ce une erreur de copier/coller? Un effet de bord? Le symptome d'un fichier mal foutu?

    Sinon, on aurait pu regrouper les variables de chaque bloc séparées par un ';'. Après, on envoie tout à awk


    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    $ cat variable29.txt 
    246.00000000
     
      -999.250000 246.00000000 245.99255371  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1059999987  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     246.50000000
     
      -999.250000 246.50000000 246.49253845  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1072999984  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     247.00000000
     
      -999.250000 247.00000000 246.99252319  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1076000035  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     247.50000000
     
      -999.250000 247.50000000 247.49250793  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1077999994  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     248.00000000
     
      -999.250000 248.00000000 247.99249268  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1042999998  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     248.50000000
     
      -999.250000 248.50000000 248.49247742  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1036000028  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     249.00000000
     
      -999.250000 249.00000000 248.99246216  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1037999988  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     249.50000000
     
      -999.250000 249.50000000 249.49244690  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1059999987  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     250.00000000
     
      -999.250000 250.00000000 249.99243164  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1102000028  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000
     
     250.50000000
     
      -999.250000 250.50000000 250.49241638  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
     0.1156999990  -999.250000  -999.250000  -999.250000  -999.250000  -999.250000
     
      -999.250000 0 0 0 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ sed 'N;N;N;N;N;N;N;N;N;N;N;s/\n/ /g;s/ \+/;/g;s/^;//g;s/;$//g' variable29.txt 
    246.00000000;-999.250000;246.00000000;245.99255371;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1059999987;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    246.50000000;-999.250000;246.50000000;246.49253845;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1072999984;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    247.00000000;-999.250000;247.00000000;246.99252319;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1076000035;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    247.50000000;-999.250000;247.50000000;247.49250793;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1077999994;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    248.00000000;-999.250000;248.00000000;247.99249268;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1042999998;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    248.50000000;-999.250000;248.50000000;248.49247742;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1036000028;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    249.00000000;-999.250000;249.00000000;248.99246216;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1037999988;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    249.50000000;-999.250000;249.50000000;249.49244690;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1059999987;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    250.00000000;-999.250000;250.00000000;249.99243164;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1102000028;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    250.50000000;-999.250000;250.50000000;250.49241638;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0.1156999990;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;0;0;0;0
    $
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Ok, si on suit l'idée de Flodelarab, et que l'on est bien linéaire au niveau bloc, on peut le faire juste avec printf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ printf "%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s%s;%s;%s;%s;%s%s;%s;%s;%s;%s;%s;%s;%s;%s\n" $(<x1.txt )
    246.00000000;-999.250000;246.00000000;245.99255371;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1059999987-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    246.50000000;-999.250000;246.50000000;246.49253845;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1072999984-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    247.00000000;-999.250000;247.00000000;246.99252319;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1076000035-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    247.50000000;-999.250000;247.50000000;247.49250793;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1077999994-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    248.00000000;-999.250000;248.00000000;247.99249268;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1042999998-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    248.50000000;-999.250000;248.50000000;248.49247742;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1036000028-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    249.00000000;-999.250000;249.00000000;248.99246216;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1037999988-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    249.50000000;-999.250000;249.50000000;249.49244690;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1059999987-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    250.00000000;-999.250000;250.00000000;249.99243164;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1102000028-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000
    250.50000000;-999.250000;250.50000000;250.49241638;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000-999.250000;-999.250000;-999.250000;-999.250000;0.1156999990-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;-999.250000;;;
    Cordialement.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2011
    Messages : 58
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup pour votre aide.
    Oui c'est une erreur de copie. On a 26 elements dans chaque bloc.
    J'ai appliquer la meme ligne de commande que vous, ca marche, sauf que j'obtiens pas le meme affichage que vous. C'est a dire j'obtiens pas chaque 26 elements dans une meme ligne. Quel editeur utilisez vous?

    Cordialement

    Fateh

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Pour l'affichage d'un texte, il y a 2 politiques:
    • Soit on fait passer le texte à la ligne pour que toute la ligne soit visible à l'écran
    • Soit on ne fait pas passer le texte à la ligne avant le '\n' de fin de ligne et tout n'est pas visible directement à l'écran.


    Sur le forum, la balise code semble respecter la fin de ligne. Alors que dans la console, il passe à la ligne même si la ligne n'est pas finie. Il faudrait que tu précises (ou copie/colle) ton affichage.

    Sinon, pour le nombre de variables, voici une idée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ str='%s';for ((i=1;i<29;i++)) do str=$str";%s";done; printf "$str\n" $(<variable29.txt )
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ str='%s';for ((i=1;i<26;i++)) do str=$str";%s";done; printf "$str\n" $(<variable29.txt )
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2011
    Messages : 58
    Points : 32
    Points
    32
    Par défaut
    C'est encore moi.

    Si je veux recuperer juste certains elements, par exemple l'element 1, 3 et 10. J'aimerais qu'isl s'affichent dans trois collones separees par espace.

    Merci

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Maintenant que ton fichier est remis en forme, awk est ideal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ str='%s';for ((i=1;i<29;i++)) do str=$str";%s";done; printf "$str\n" $(<variable29.txt )|awk -F';' '{print $1,$3,$10}'
    246.00000000 246.00000000 -999.250000
    246.50000000 246.50000000 -999.250000
    247.00000000 247.00000000 -999.250000
    247.50000000 247.50000000 -999.250000
    248.00000000 248.00000000 -999.250000
    248.50000000 248.50000000 -999.250000
    249.00000000 249.00000000 -999.250000
    249.50000000 249.50000000 -999.250000
    250.00000000 250.00000000 -999.250000
    250.50000000 250.50000000 -999.250000
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Juste pour le fun, au lieu de awk, on peut utiliser cut et si on est en bash, on peut initialiser une variable sans la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ declare yy[{1..29}]='%s';printf "${yy[*]}\n" $(<x1.txt ) | cut -d' ' -f1,3,10
    246.00000000 246.00000000 -999.250000
    246.50000000 246.50000000 -999.250000
    247.00000000 247.00000000 -999.250000
    247.50000000 247.50000000 -999.250000
    248.00000000 248.00000000 -999.250000
    248.50000000 248.50000000 -999.250000
    249.00000000 249.00000000 -999.250000
    249.50000000 249.50000000 -999.250000
    250.00000000 250.00000000 -999.250000
    250.50000000 250.50000000 -999.250000
    Cordialement.

Discussions similaires

  1. lire un fichier ascii
    Par Noovn74 dans le forum MATLAB
    Réponses: 1
    Dernier message: 26/06/2014, 13h25
  2. Réponses: 3
    Dernier message: 26/03/2014, 09h16
  3. Comment lire un fichier ASCII ?
    Par ThonySp dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/06/2013, 08h01
  4. Réponses: 4
    Dernier message: 27/06/2012, 13h09
  5. lire un fichier ascii complexe
    Par alexum dans le forum C++
    Réponses: 9
    Dernier message: 16/02/2005, 09h05

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