web-dev-qa-db-ja.com

大きな数字から改行を削除する方法は?

多数の数字(たとえば、Napier定数の最初の100万桁)を生成し、改行なしでテキストファイルに保存できるようにしたいと思います。

ただし、GEditまたはLibreOffice Writerでこれを行うことはできないようです。ターミナルでMaximaを使用して番号を生成していますが、それらは改行付きで出力されます。

改行なしで数字を生成する方法を見つける必要があるか、何百万桁を含む大きな数字から改行を削除できるテキストエディターを見つける必要があります(数千桁の数字から改行を問題なく削除できます) )。

以下のターミナル構文を使用して、Napier定数の最初の100万桁の数字を生成し、その数字をコピーしてテキストエディターに貼り付けます(\\と\ nを削除)。

Sudo apt-get install wxmaxima

maxima

bfloat(%e),fpprec:1000000;

GEditにコピーして貼り付けてから改行を削除しようとすると、数字をすべて1行で取得できますが、数字は表示されません。 GEditは改行を正常に削除して1000桁を表示できますが、100万桁は表示できないため、メモリに問題があるのではないかと考えています。ただし、ファイルをTXTとして保存してからLibreOfficeで開くと、改行が含まれています。ターミナルから直接コピーして貼り付けても、LibreOfficeは改行をまったく削除できないようです。

Canonical Ubuntuではなく、Mintとして知られるフォーク:-/を追加する必要があります。

3
Nicole Sharp

GEdit(およびLibreoffice)は、このための適切なツールではありません。

私があなたを正しく理解しているなら、あなたは変換したい

123456\n

123456

たとえば、Perlを使用します。

Perl -pe 'chomp' your_input_file.txt > without_newlines.txt

更新入力ファイルには、改行だけでなく、末尾に行継続文字\が含まれていることが判明しました。

2.7182818284590452353602874713526624977572470936999595749669676277240766\
303535475945713821785251664274274663919320030599218174135966290435729003342952\
605956307381323286279434907632338298807531952510190115738341879307021540891499\
348841675092447614606680822648001684774118537423454424371075390777449920695517\
...

それら(および改行)を削除するには、次のコマンドを実行します。

Perl -pe 'chomp; s/\\//;' your_input_file.txt > without_newlines.txt
4
PerlDuck

これを行うための正しい方法は、maxima出力をファイルに直接書き込むことにより、テキストのコピーアンドペーストを避けることです。

x:bfloat(%e),fpprec:1000000$
stringout("my_big_number.txt",x);

最初の式の$の代わりに;を使用すると、-かなり大きな-コンソール出力が抑制されます。

wcを使用して、出力ファイルに追加の改行がないことを確認できます。

$ wc my_big_number.txt
      2       1 1000006 my_big_number.txt

(実際には、oneの追加の改行があります。stringoutは出力の前に1つの空白行を挿入するように見えるためです。ただし、数値出力自体)。

LibreOfficeがインストールされているため、スタンドアロンの変換フィルターを使用して、テキストファイルを他の任意の形式に変換できます。

$ libreoffice --convert-to pdf my_big_number.txt
$ xdg-open my_big_number.pdf 

または、LOのunoconvコマンドラインユーティリティを使用できます。

$ unoconv -f pdf my_big_number.txt 

例を参照してください TXTをPDFに変換する方法?

5
steeldriver