J'aimerais pouvoir générer un grand nombre de chiffres (par exemple, le premier million de chiffres décimaux de la constante de Napier), puis enregistrer le nombre dans un fichier texte sans saut de ligne.
Il semble que je ne puisse pas le faire avec GEdit ou LibreOffice Writer. J'utilise Maxima sur Terminal pour générer les nombres, mais ils sont générés avec des sauts de ligne.
Je dois soit trouver un moyen de générer des nombres sans sauts de ligne, soit trouver un éditeur de texte capable de supprimer les sauts de ligne des grands nombres contenant des millions de chiffres (je peux supprimer les sauts de ligne des numéros contenant des milliers de chiffres sans aucun problème. ).
J'utilise la syntaxe de terminal ci-dessous pour générer le premier million de chiffres décimaux de la constante de Napier, puis copier et coller les chiffres dans un éditeur de texte (en supprimant les symboles \\ et\n).
Sudo apt-get install wxmaxima
maxima
bfloat(%e),fpprec:1000000;
Lorsque je tente de copier et de coller dans GEdit, puis de supprimer les sauts de ligne, je peux obtenir les chiffres sur une seule ligne, mais ces chiffres ne s'affichent pas. Étant donné que GEdit peut supprimer les sauts de ligne et afficher 1 000 chiffres mais pas un million de chiffres, je me demande s’il pourrait s’agir d’un problème de mémoire. Cependant, lorsque j'essaie d'enregistrer le fichier en tant que TXT et que je l'ouvre ensuite à la place de LibreOffice, il contient toujours des sauts de ligne. LibreOffice n'arrive pas à supprimer les sauts de ligne, même lorsque je copie et colle directement depuis Terminal.
Je devrais ajouter que je ne suis peut-être pas sur Ubuntu, mais sur la fourche appelée Mint: - /.
GEdit (et Libreoffice) ne sont pas les bons outils pour cela.
Si je vous comprends bien, alors vous voulez convertir
123456\n
dans
123456
Utilisez Perl, par exemple:
Perl -pe 'chomp' your_input_file.txt > without_newlines.txt
Mise à jour Le fichier d'entrée s'est avéré avoir non seulement des sauts de ligne, mais également un caractère de continuation de ligne \
à la fin, c'est-à-dire:
2.7182818284590452353602874713526624977572470936999595749669676277240766\
303535475945713821785251664274274663919320030599218174135966290435729003342952\
605956307381323286279434907632338298807531952510190115738341879307021540891499\
348841675092447614606680822648001684774118537423454424371075390777449920695517\
...
Pour les supprimer (ainsi que les sauts de ligne), utilisez la commande suivante:
Perl -pe 'chomp; s/\\//;' your_input_file.txt > without_newlines.txt
À mon humble avis, la meilleure façon de le faire est d’éviter tout copier-coller du texte en écrivant la sortie maxima
directement dans le fichier:
x:bfloat(%e),fpprec:1000000$
stringout("my_big_number.txt",x);
$
à la place de ;
dans la première expression supprime simplement la sortie - plutôt grande - de la console.
Vous pouvez confirmer qu'il n'y a pas de saut de ligne supplémentaire dans le fichier de sortie en utilisant wc
:
$ wc my_big_number.txt
2 1 1000006 my_big_number.txt
(en fait, il y a un nouvelle ligne supplémentaire, puisque stringout
semble insérer une seule ligne vide avant la sortie; sortie numérique elle-même).
Vous pouvez ensuite convertir le fichier texte dans n’importe quel autre format, du fait que LibreOffice est installé, à l’aide de ses filtres de conversion autonomes:
$ libreoffice --convert-to pdf my_big_number.txt
$ xdg-open my_big_number.pdf
Vous pouvez également utiliser l'utilitaire de ligne de commande unoconv
de LO:
$ unoconv -f pdf my_big_number.txt
Voir par exemple Comment convertir TXT en PDF?