Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/12/2013, à 01:30

TerminOS

Script de tri et d'extraction sur plusieurs fichiers.

Bonjour @ tous;
J'ai un dossier avec 50 fichiers, ci dessous un example d'un des fichiers.

"wallHeatFlux","NusseltNumber","T","Cell Type"
10988.3,0.91569,499.632,9
10781.7,0.898478,499.632,9
10675.9,0.889656,499.631,9
10557.7,0.879808,499.63,9
10395.5,0.866296,499.63,9
10024.9,0.835411,499.629,9
9575.41,0.797951,499.628,9
9244.11,0.770342,499.626,9
9032.87,0.752739,499.624,9
8868.99,0.739082,499.622,9
8870.2,0.739183,499.619,9
9050.27,0.754189,499.615,9
9451.16,0.787596,499.611,9
10073.1,0.839427,499.608,9
10829.2,0.902434,499.603,9
11731,0.977586,499.598,9
12873.7,1.07281,499.592,9
14135.4,1.17795,499.586,9
15471,1.28925,499.579,9
16935.7,1.41131,499.572,9
18410.6,1.53422,499.564,9
20213.8,1.68448,499.556,9
21905.7,1.82548,499.547,9
23379,1.94825,499.542,9
24761.1,2.06342,499.535,9
26330.3,2.19419,499.527,9
28137.3,2.34478,499.519,9
30052.2,2.50435,499.511,9
31613.7,2.63448,499.503,9
32704.1,2.72534,499.495,9
33701.7,2.80848,499.487,9
35189,2.93242,499.478,9
36938.2,3.07818,499.469,9
38093.6,3.17447,499.465,9
39115.3,3.25961,499.46,9
39807.4,3.31728,499.455,9
40135.8,3.34465,499.45,9
40300.2,3.35835,499.446,9
40661.1,3.38842,499.442,9
41002.1,3.41684,499.438,9
41421.6,3.4518,499.43,9
41704,3.47533,499.424,9
41809.7,3.48414,499.423,9
41884.9,3.49041,499.421,9
42098.1,3.50817,499.419,9
42242.5,3.52021,499.418,9
42326.1,3.52717,499.416,9
42556.2,3.54635,499.415,9
42356.1,3.52967,499.415,9
41993.6,3.49946,499.415,9
41626.7,3.46889,499.415,9
41101.4,3.42512,499.414,9
40944.3,3.41203,499.414,9
41387.3,3.44895,499.415,9
42255.3,3.52127,499.415,9
42738.5,3.56154,499.416,9
42731.6,3.56096,499.417,9
42682.4,3.55687,499.418,9
43158,3.5965,499.42,9
43266.3,3.60552,499.422,9
42714.3,3.55952,499.425,9
41964.8,3.49706,499.428,9
41196.5,3.43304,499.431,9
40748.5,3.39571,499.435,9
40675.3,3.38961,499.439,9
40306.4,3.35887,499.444,9
39595.9,3.29966,499.449,9
38646.9,3.22057,499.454,9
37615.6,3.13463,499.46,9
36750.1,3.06251,499.466,9
35976.3,2.99803,499.472,9
34652.6,2.88772,499.479,9
33436.2,2.78635,499.484,9
32867,2.73892,499.491,9
32386.4,2.69887,499.499,9
31210.1,2.60084,499.507,9
29173,2.43108,499.515,9
27256.2,2.27135,499.523,9
25645,2.13709,499.531,9
23941.6,1.99513,499.539,9
22383,1.86525,499.546,9
20756,1.72967,499.554,9
19108,1.59233,499.562,9
17385.8,1.44882,499.569,9
16017.8,1.33482,499.577,9
15058.5,1.25488,499.583,9
13967.5,1.16396,499.589,9
12786.3,1.06552,499.594,9
11541.1,0.961761,499.601,9
10525.1,0.877092,499.606,9
9767.8,0.813984,499.611,9
9150.88,0.762573,499.615,9
8783.96,0.731997,499.619,9
8654.5,0.721209,499.622,9
8655.72,0.72131,499.624,9
8820.5,0.735041,499.626,9
9033.99,0.752832,499.628,9
9373.14,0.781095,499.629,9
9803.4,0.81695,499.63,9
10285.3,0.857105,499.631,9
10709.9,0.892495,499.631,9
10975.6,0.914637,499.632,9
11172.3,0.931024,499.632,9
11170.6,0.93088,499.632,9

Je veux écrire un script shell qui, sur tous le fichiers du dossier ,
- supprime la première ligne,
- supprime la dernière colonne ,9
- remplacer la virgule avec un espace.
- et d'affecter à les valeurs de chaque colonne à une variable x1, x2, x3.

j'ai quelques notions en en script shell, mais à écrire un pour faire tout ça , je ne suis pas encore arriver. big_smile

Merci d'avance.


Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#2 Le 29/12/2013, à 06:56

pingouinux

Re : Script de tri et d'extraction sur plusieurs fichiers.

Bonjour,

- supprime la première ligne, OK
- supprime la dernière colonne ,9 OK
- remplacer la virgule avec un espace. La virgule qui précède le dernier 9, ou toutes ?
- et d'affecter à les valeurs de chaque colonne à une variable x1, x2, x3. ?????

Voici un exemple de ce qu'on peut faire avec ton fichier

awk -F, 'NR>1{print "x1="$1" x2="$2" x3="$3}' ton_fichier

et voici le début de ce qu'on obtient

x1=10988.3 x2=0.91569 x3=499.632
x1=10781.7 x2=0.898478 x3=499.632
x1=10675.9 x2=0.889656 x3=499.631

Hors ligne

#3 Le 29/12/2013, à 10:06

TerminOS

Re : Script de tri et d'extraction sur plusieurs fichiers.

Bonjour pingouinux, et merci pour le retour.

Pour les virgules , oui, les remplacer toutes par espace, et c'est à peu près ce que je vois dans le fichier de sortie, sauf que je vais enlever les x1, X2 et X3 et afficher juste les valeurs des colonnes.

Est ce qu'il y a un moyen d'appliquer cette ligne de script à un dossier qui contient une centaine de fichiers.


Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#4 Le 29/12/2013, à 10:28

pingouinux

Re : Script de tri et d'extraction sur plusieurs fichiers.

cd repertoire_ou_sont_les_fichiers
mkdir repertoire_pour_les_fichiers_modifies
for f in *
do
   awk -F, 'NR>1{print $1" "$2" "$3}' "$f" >repertoire_pour_les_fichiers_modifies/"$f"
done

Hors ligne

#5 Le 29/12/2013, à 11:08

TerminOS

Re : Script de tri et d'extraction sur plusieurs fichiers.

sur un seul fichier ça marche très bien.
mais lorsque j'exécute le scripte sur le répertoire il me renvoie une erreur :
script:

for f in *
do
   awk -F, 'NR>1{print $1" "$2" "$3}' "$f" >wallHeatData_mod/"$f"
done

erreur renvoyée:

awk: read error (Is a directory)

Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#6 Le 29/12/2013, à 11:16

pingouinux

Re : Script de tri et d'extraction sur plusieurs fichiers.

N'a-t-il pas fait le travail quand même ?
Sinon

for f in *
do
   [ -f "$f" ] || continue
   awk -F, 'NR>1{print $1" "$2" "$3}' "$f" >repertoire_pour_les_fichiers_modifies/"$f"
done

Hors ligne

#7 Le 29/12/2013, à 12:35

TerminOS

Re : Script de tri et d'extraction sur plusieurs fichiers.

Bon je pense que ça marche sur l'ensemble des fichiers...
j'ai rajouté une ligne de shell :

#!/bin/bash
cd wallHeatData
mkdir wallHeatData_mod
for f in *
do
   awk -F, 'NR>1{print $1" "$2" "$3}' "$f" >wallHeatData_mod/"$f"
done

Je te remercie énormément  smile pour ton aide, ça m'a permis d'avancer beaucoup dans ce que je suis en train de faire.

Dernière modification par TerminOS (Le 29/12/2013, à 13:24)


Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#8 Le 13/01/2014, à 18:54

jdacier

Re : Script de tri et d'extraction sur plusieurs fichiers.

Je te conseille d'utiliser des logiciels de renommage tel que "metamorphose" ou "pyrenamer" ils permettent de tout faire

Hors ligne