#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.
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 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