Dans un premier temps on pourrait se dire qu'il suffit de travailler sur le fichier directement avec cut : cut -c -4 pi.txtsauf que cut travaille sur des lignes complètes. Dans le cas où Fabrice B. aurait sauté des lignes toutes les x décimales on se retrouverait avec une sortie du genre :
Si il a écrit les décimales sur une seule ligne, dans ce cas cut va quand même lire tout le fichier jusqu'à rencontré sa fin de ligne ou l'EOF, le résultat nous concernant est toujours le même, on parcours 2.5To de données. Peut être mis en évidence avec strace : strace -s 10000 cut -c -4 pi.txt
La commande head travaille aussi sur des lignes complètes, aucune amélioration.
On peut alors utiliser dd, od (le résultat serait a interpréter) ou un script vite fait, pour ne récupérer que les 4 premiers octets : dd if=pi.txt bs=4 count=1 2>/dev/null;echo
ou od -N4 -a pi.txt
ou encore
#!/usr/bin/env python
# ouverture du filedescriptor en supposant
# que le fichier ./pi.txt existe
src=open('pi.txt', 'r')
# on lit 4 octets et on les affiche
print(src.read(4))
# fermeture du filedescriptor
src.close
[^] # Re: Mensonge !
Posté par gnuk . En réponse à la dépêche Fabrice Bellard bat le record des décimales de Pi. Évalué à 1.
cut -c -4 pi.txtsauf que cut travaille sur des lignes complètes. Dans le cas où Fabrice B. aurait sauté des lignes toutes les x décimales on se retrouverait avec une sortie du genre :3.14
_des_chiffres_
_des_chiffres_
_des_chiffres_
[...]
_des_chiffres_
Si il a écrit les décimales sur une seule ligne, dans ce cas cut va quand même lire tout le fichier jusqu'à rencontré sa fin de ligne ou l'EOF, le résultat nous concernant est toujours le même, on parcours 2.5To de données. Peut être mis en évidence avec strace :
strace -s 10000 cut -c -4 pi.txtLa commande head travaille aussi sur des lignes complètes, aucune amélioration.
On peut alors utiliser dd, od (le résultat serait a interpréter) ou un script vite fait, pour ne récupérer que les 4 premiers octets :
dd if=pi.txt bs=4 count=1 2>/dev/null;echoou
od -N4 -a pi.txtou encore
#!/usr/bin/env python
# ouverture du filedescriptor en supposant
# que le fichier ./pi.txt existe
src=open('pi.txt', 'r')
# on lit 4 octets et on les affiche
print(src.read(4))
# fermeture du filedescriptor
src.close