Même effet ?

symbol

Membre émérite
13 Octobre 2004
536
25
Bonjour

Est-il preferable de faire :

Bloc de code:
> /Users/xxx/Desktop/KENODATA/TOP1.txt
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | tail -1   >> /Users/xxx/Desktop/KENODATA/TOP1.txt
ou

Bloc de code:
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | tail -1   > /Users/xxx/Desktop/KENODATA/TOP1.txt
Merci
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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 :
Bloc de code:
head -1 /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt > /Users/xxx/Desktop/KENODATA/TOP1.txt
 

symbol

Membre émérite
13 Octobre 2004
536
25
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

Membre émérite
13 Octobre 2004
536
25
Autre probleme :-/

Ce code fonctionne sans pb :

Bloc de code:
#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,

Bloc de code:
#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 :
Bloc de code:
iconv: /Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt:5:0: cannot convert
Pourtant le fichier est bien en UTF-16 et lisible


???? je comprends pas :-/
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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' ...
 
Dernière édition:

symbol

Membre émérite
13 Octobre 2004
536
25
Je viens de faire ton conseil.

J'ai
Bloc de code:
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
Bloc de code:
####### 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
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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

Membre émérite
13 Octobre 2004
536
25
donc, j'ai mis

Bloc de code:
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 :

Bloc de code:
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
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
Peux-être comme ceci (difficile sans le terminal sous la main) :
Bloc de code:
"/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

Membre émérite
13 Octobre 2004
536
25
Pour info.

La commande d'origine :
Bloc de code:
#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).
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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

Membre émérite
13 Octobre 2004
536
25
Je soupconnais ce problème, mais je préférais ton analyse avant de faire quoique soit :)

Je remedier à la cause.

Merci.
 

symbol

Membre émérite
13 Octobre 2004
536
25
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).
 
Dernière édition:

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
Remplace ceci
Bloc de code:
####### 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
Bloc de code:
####### 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

Membre émérite
13 Octobre 2004
536
25
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

Membre émérite
13 Octobre 2004
536
25
Le fichier RSULTATSTATS.txt etant généré a partir de ca :

Bloc de code:
############################################################################################
####  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
 
Dernière édition:
  • J’aime
Réactions: macomaniac

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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 :
Bloc de code:
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 :
Bloc de code:
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE_UTF8.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSHISTORIQUE.txt"
:)
 

symbol

Membre émérite
13 Octobre 2004
536
25
J'ose plus rien changer, ca marche parfaitement :)

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

Merci
 

symbol

Membre émérite
13 Octobre 2004
536
25
Voici le log quand ca upload sur mon serveur FTP


Bloc de code:
                                 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