# Même effet ?



## symbol (17 Juillet 2018)

Bonjour

Est-il preferable de faire :


```
> /Users/xxx/Desktop/KENODATA/TOP1.txt
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | tail -1   >> /Users/xxx/Desktop/KENODATA/TOP1.txt
```

ou


```
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | tail -1   > /Users/xxx/Desktop/KENODATA/TOP1.txt
```

Merci


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Le "head -1" ne te retournera qu'une seul ligne (la première du fichier). Aucun intérêt de faire ensuite un "tail -1" qui lui aussi te retournera une seule ligne (donc celle issue du head). Il est donc préférable d'avoir :

```
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt > /Users/xxx/Desktop/KENODATA/TOP1.txt
```


----------



## symbol (17 Juillet 2018)

Il me semblait bien pour head et tail.
En fait je voulais savoir si le 1er  "> /Users/xxx/Desktop/KENODATA/TOP1.txt" n'etait pas superflu


----------



## symbol (17 Juillet 2018)

Autre probleme :-/

Ce code fonctionne sans pb :


```
#converti l'encodage format UTF-8 en UTF-16 afin afficher le symbole "€" (puis renomme PODIUMbis.txt en PODIUM.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/PODIUM.txt" > "/Users/xxx/Desktop/KENODATA/PODIUMbis.txt"
mv "/Users/xxx/Desktop/KENODATA/PODIUMbis.txt" "/Users/xxx/Desktop/KENODATA/PODIUM.txt"
```

Je fais la meme chose avec un autre fichier texte,


```
#converti l'encodage format UTF-8 en UTF-16 afin afficher le symbole "€" et "★" (puis renomme RESULTATSHISTORIQUEUTF16.txt en RESULTATSHISTORIQUE.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt"
mv "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```

et j'ai l'erreur dans le terminal :

```
iconv: /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt:5:0: cannot convert
```

Pourtant le fichier est bien en UTF-16 et lisible






???? je comprends pas :-/


----------



## Membre supprimé 1129907 (17 Juillet 2018)

symbol a dit:


> Il me semblait bien pour head et tail.
> 
> En fait je voulais savoir si le 1er  "> /Users/xxx/Desktop/KENODATA/TOP1.txt" n'etait pas superflu



Ma version était en une seule ligne, donc oui


Pour ton autre problème, il doit y avoir un caractère qui gêne (pas forcément un qui s’affiche. Essaie de faire ce « tr » avant le iconv. Cela supprimera un caractère Windows invisible qui pourrait être source de problèmes :
tr -d "\r" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" | iconv -f 'UTF-8' -t 'UTF-16' ...


----------



## symbol (17 Juillet 2018)

Je viens de faire ton conseil.

J'ai

```
iconv: /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt:9:0: cannot convert
```

De plus ca bloque le terminal.


Pour info le fichier RESULTATSHISTORIQUE.txt est fait a partir de

```
####### inscription dans /RESULTATSHISTORIQUE.txt gain SANS multiplicateur  #######
    echo "${affichagedate} ${nickName} : X${multiplier} (${myMatches#,}) [$((${matchCount}-1))/${#myNumbersThisGame[*]}]▶ ${gamePayouts[${i}]} € X${multiplier} -------- ★★ $((${gamePayouts[${i}]}*${multiplier})) € ★★"  | tr '[[:lower:]]' '[[:upper:]]' | tr -d '@' > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
   cat /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt >> /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
   head -100 /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt
   rm -f /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
```


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Il manquait le nom du fichier, ligne corrigée dans mon post précédent

Mais vu comment ton fichier est créé, ça ne doit pas être ça. Peut-être un pb de format du fichier source ?


----------



## symbol (17 Juillet 2018)

donc, j'ai mis 


```
tr -d "\r" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" | iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt"
```

et j'ai cette fois :


```
usage: tr [-Ccsu] string1 string2
       tr [-Ccu] -d string1
       tr [-Ccu] -s string1
       tr [-Ccu] -ds string1 string2
iconv: /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt:5:0: cannot convert
```


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Peux-être comme ceci (difficile sans le terminal sous la main) :

```
"/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt | tr -d "\r" | iconv...
```

Pas de fichier à indiquer à iconv, il prendra en entrée le retour du tr


----------



## symbol (17 Juillet 2018)

Pour info.

La commande d'origine :

```
#converti l'encodage format UTF-8 en UTF-16 afin affiché le symbole "€" et "★" (puis renomme RESULTATSHISTORIQUEUTF16.txt en RESULTATSHISTORIQUE.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt"
mv "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```

fonctionne 1 fois (la premiere fois ou le script est lancé), mais quand de nouveaux résultats sont ajoutés a la suite des premiers (dans le fichier RESULTATSHISTORIQUE.txt), j'obtiens une erreur a ce moment la.

Je suis un peu perdu :-/  est-ce que j'essai de convertir 2 fois le fichier UTF-8 vers UTF-16 ... Je commande a avoir du mal a suivre.

Ce qui se passe :
1) Fichier RESULTATSHISTORIQUE.txt créé
2) ajout des données dans le fichier
3) convertion UTF8 vers UTF16

4) le script est relancé, on recommence etape 1 (sans création puisque fichier existe deja, c'est un ajout de données qui est fait).


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Ah je vois.
Les données sont en UTF8 et converties en UTF16. Ensuite tu ajoutes des données UTF8 à celle en UTF16 (donc il y a un mix des deux) et le iconv ne fonctionne plus.

La solution c’est de faire le iconv avant de rajouter des données dans le fichier final.
Ou alors de garder une version du fichier en UTF8 dans laquelle tu ajoutes des lignes. Puis tu le convertis en UTF16 pour créer ton fichier final.

Le mix UTF8/16 dans le même fichier est en tout cas la source de ton pb


----------



## symbol (17 Juillet 2018)

Je soupconnais ce problème, mais je préférais ton analyse avant de faire quoique soit 

Je remedier à la cause.

Merci.


----------



## symbol (17 Juillet 2018)

Ecatomb, je suis completement a la ramasse avec ce probleme de UTF8 -> UTF16 (RESULTATSHISTORIQUE.txt).

Je vois pas comment resoudre le PB (malgré avoir lu tes conseils).


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Remplace ceci

```
####### inscription dans /RESULTATSHISTORIQUE.txt gain SANS multiplicateur  #######
echo "${affichagedate} ${nickName} : X${multiplier} (${myMatches#,}) [$((${matchCount}-1))/${#myNumbersThisGame[*]}]▶ ${gamePayouts[${i}]} € X${multiplier} -------- ★★ $((${gamePayouts[${i}]}*${multiplier})) € ★★"  | tr '[[:lower:]]' '[[:upper:]]' | tr -d '@' > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
cat /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt >> /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
head -100 /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt
rm -f /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp

#converti l'encodage format UTF-8 en UTF-16 afin affiché le symbole "€" et "★" (puis renomme RESULTATSHISTORIQUEUTF16.txt en RESULTATSHISTORIQUE.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt"
mv "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUEUTF16.txt" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```

Par cela

```
####### inscription dans /RESULTATSHISTORIQUE.txt gain SANS multiplicateur  #######
echo "${affichagedate} ${nickName} : X${multiplier} (${myMatches#,}) [$((${matchCount}-1))/${#myNumbersThisGame[*]}]▶ ${gamePayouts[${i}]} € X${multiplier} -------- ★★ $((${gamePayouts[${i}]}*${multiplier})) € ★★"  | tr '[[:lower:]]' '[[:upper:]]' | tr -d '@' > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
cat /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt >> /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp
head -100 /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp > /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt
rm -f /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt-tmp

#converti l'encodage format UTF-8 en UTF-16 afin affiché le symbole "€" et "★" (puis renomme RESULTATSHISTORIQUEUTF16.txt en RESULTATSHISTORIQUE.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF16.txt"
mv "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF16.txt" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```


----------



## symbol (17 Juillet 2018)

Merci de ta réponse très rapide.

Bon, j'ai retrouvé l'usage normale du RESULTATSHISTORIQUE.txt (les nouveaux gagnants sont de nouveaux ajoutés)

Maintenant, je essayer de regarder de plus pres , car je n'ai plus  *TOP #1* (le plus gros gagnant) et  *Gain cumulé 100 derniers tirages*


----------



## symbol (17 Juillet 2018)

Le fichier RSULTATSTATS.txt etant généré a partir de ca :


```
############################################################################################
####  SORTIE DES STATS VERS FICHIER TEXTE (nombre de tirages gagnants triés decroissant + etoiles) #####
############################################################################################

# creation d'un fichier vide RESULTATSTATS.txt
# > /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt

#v2
# Donne :
#MAGNETICO   34 €
#ELSIE   34 €
#MICROSEB   14 €
awk '{
  split($0,ligne," : ")
  #$0 = VENDREDI 06 JUILLET 2018 - SOIR : MAGNETICO : X1 [5/6]▶ 30 € X1 -------- ★★ 30 € ★★
  #ligne[1] = VENDREDI 06 JUILLET 2018 - SOIR
  #ligne[2] = MAGNETICO
  #ligne[3] = X1 [5/6]▶ 30 € X1 -------- ★★ 30 € ★★

  joueur=ligne[2]

  #Pour ne garder que le 30 dans la partie : ★★ 30 € ★★
  gain_start=index(ligne[3],"★★")+7
  gain_end=index(ligne[3]," € ★★")
  gain=substr(ligne[3],gain_start,gain_end-gain_start)

  #Tableau contenant les gains par joueur
  tableau[joueur]=tableau[joueur]+gain
}
END {
  for (joueur in tableau)
  {
    printf "%s:%s\n",joueur,tableau[joueur]
  }
}' RESULTATSHISTORIQUE.txt | sort -t':' -k2 -nr | grep -v "PAS DE GAGNANT pour ce tirage" | sed "s/^\(.*\):\(.*\)$/\1 > \2 €  /" > /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt

### -------------------------------------------------------------------------------------------------------------------------------------------------
```


MAJ : je crois avoir vu

RESULTATSHISTORIQUE.txt -> RESULTATSHISTORIQUE_UTF8.txt


Je vais voir avec les prochains tirages si tout est OK.
Merci X 100


----------



## Membre supprimé 1129907 (17 Juillet 2018)

C'est ça, le RESULTATSHISTORIQUE_UTF8 contient tes données avant la conversion et est à conserver. C'est lui qui sera mis à jour.
Le RESULTATSHISTORIQUE_UTF16 lui est la conversion en UTF16 du précédant, il sera utilisé uniquement pour l'affichage sur ton forum.

D'ailleurs tu peux remplacer :

```
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF16.txt"
mv "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF16.txt" "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```

Par :

```
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
```


----------



## symbol (17 Juillet 2018)

J'ose plus rien changer, ca marche parfaitement 

Mais je vais suivre encore (et encore) tes conseils.

Merci


----------



## symbol (17 Juillet 2018)

Voici le log quand ca upload sur mon serveur FTP



```
Dload  Upload   Total   Spent    Left  Speed
100  137k    0     0  100  137k      0  1155k --:--:-- --:--:-- --:--:-- 1156k
curl: (21) QUOT command failed with 550
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   734    0     0  100   734      0   6631 --:--:-- --:--:-- --:--:--  6672
curl: (21) QUOT command failed with 550
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    72    0     0  100    72      0    667 --:--:-- --:--:-- --:--:--   672
curl: (21) QUOT command failed with 550
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   186    0     0  100   186      0   1727 --:--:-- --:--:-- --:--:--  1738
curl: (21) QUOT command failed with 550
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    36    0     0  100    36      0    327 --:--:-- --:--:-- --:--:--   330
curl: (21) QUOT command failed with 550
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   186    0     0  100   186      0   1639 --:--:-- --:--:-- --:--:--  1646
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1808    0     0  100  1808      0   1686  0:00:01  0:00:01 --:--:--  1688
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1808    0     0  100  1808      0   2127 --:--:-- --:--:-- --:--:--  2127
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1808    0     0  100  1808      0   2338 --:--:-- --:--:-- --:--:--  2338
```


Les fichiers sont bien envoyés, mais a quoi corresponds cette erreur ?
curl: (21) QUOT command failed with 550


----------



## Membre supprimé 1129907 (17 Juillet 2018)

https://fr.wikipedia.org/wiki/Liste_des_codes_des_réponses_d'un_serveur_FTP


----------



## symbol (17 Juillet 2018)

550 Requête non exécutée : Fichier indisponible (ex., fichier introuvable, pas d'accès).

Je dirais que Curl demande d'effacer un fichier non (encore) -existant ?


----------



## Membre supprimé 1129907 (17 Juillet 2018)

Fichier non trouvé à la source : de ton mac vers le serveur, ou l'inverse


----------



## symbol (18 Juillet 2018)

Pas sur le mac. 
Dansle script, la commande curl est la derniere a etre executée.
Par contre Curl doit effacer des anciens fichers pour y placer les nouveaux.

```
-Q 'DELE RESULTATS.txt'
-Q 'DELE RESULTATSvocal.mp3'
-Q 'DELE RESULTATSHISTORIQUE.txt'
-Q 'DELE RESULTATSTATS.txt'
-Q 'DELE TOP3.txt'
-Q 'DELE TOP1.txt'
-Q 'DELE PODIUM.txt'
```


----------



## Membre supprimé 1129907 (18 Juillet 2018)

La dessus, je ne pourrais pas trop t'aider ...

Deux idée que j'ai :

La commande d'effacement n'est peut-être pas encore prise en compte lors de la copie du nouveau fichier sur ton serveur
Tu fais trop d'action sur le serveur dans un lapse de temps court

Si c'est le deuxième cas, rajoute un "sleep 2" pour faire un pause de 2sec entre chaque curl.


----------



## symbol (18 Juillet 2018)

Il me semble bien que le serveur FTP limite le nombre de connexion a la sec.
Quand j'upload via transmit, la moitié de mes fichiers ne sont pas acceptés, je le dois le refaire plus tard.


----------



## Membre supprimé 1129907 (18 Juillet 2018)

Donc l’idée du « sleep » est à tester


----------



## symbol (18 Juillet 2018)

Je vais mettre ca dans le script, et je verrais ce soir au lancement ce que ca donne.  Merci


----------



## symbol (18 Juillet 2018)

Je vais ouvrir un nouveau post, concernant une petit amélioration d'un petit truc (savoir si c'est possible déjà).


----------

