タグ付けされた質問 「large-files」

6
巨大なファイルのcat行Xから行Y
私は(> 2GB)巨大なテキストファイルを持っていると私はしたいとcatラインXにY(例えば57890010から57890000)。 私が理解から私は、配管によってこれを行うことができますheadにtail、すなわち、またはその逆 head -A /path/to/file | tail -B または代わりに tail -C /path/to/file | head -D ここでA、B、CおよびDファイル内の行の数から計算することができる、XとY。 しかし、このアプローチには2つの問題があります。 あなたは計算する必要がありA、B、CとD。 コマンドは、読みたいと思うよりもはるかに多くの行pipeを相互に送信できます(たとえば、巨大なファイルの途中で数行だけを読んでいる場合) シェルを動作させて、必要な行を出力する方法はありますか?(Xとのみを提供しながらY)?
132 tail  cat  large-files  head 

14
巨大な(70GB)、1行のテキストファイルの文字列を置き換えます
巨大な(70GB)1行のテキストファイルがあり、その中の文字列(トークン)を置き換えたいと思います。token <unk>を別のダミートークンに置き換えたい(グローブの問題)。 私が試したsed: sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new しかし、出力ファイルにcorpus.txt.newはゼロバイトがあります! 私もperlを使ってみました: perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new しかし、メモリ不足エラーが発生しました。 小さいファイルの場合、上記の両方のコマンドが機能します。 そのようなファイルである文字列を置き換えるにはどうすればよいですか? これは関連した質問ですが、答えはどれもうまくいきませんでした。 編集:ファイルを10GBのチャンク(または何でも)に分割し、それぞれに適用sedしてからマージするのはcatどうですか?それは理にかなっていますか?よりエレガントなソリューションはありますか?

9
テキストファイル内の重複行を削除する方法は?
私の巨大な(最大2 GiB)テキストファイルには、その中のすべての行の約100の正確な複製が含まれています(ファイルはCSVのようなデータテーブルであるため、私の場合は役に立ちません)。 私が必要なのは、元のシーケンスの順序を維持しながら、すべての繰り返しを削除することです(ただし、これはパフォーマンスを大幅に向上させるために犠牲にすることができます)。結果では、各行は一意である必要があります。等しい行が100行ある場合(通常、重複はファイル全体に広がり、隣人にはなりません)、残された種類は1つだけです。 これを実装するためのプログラムをScalaで作成しました(Scalaを知らない場合はJavaを検討してください)。しかし、おそらくこれをより高速に実行できる、より高速なCで作成されたネイティブツールがあるのでしょうか。 更新:awk '!seen[$0]++' filenameファイルが2 GiB以下に近い限り、解決策はうまく機能しているように見えましたが、8 GiBファイルをクリーンアップしようとしても機能しなくなりました。4 GiB RAMを搭載したMacと4 GiB RAMおよび6 GiBスワップを搭載した64ビットWindows 7 PCで無限に実行されているように見えます。そして、この経験を考えると、4 GiB RAMを搭載したLinuxで試してみることに熱心ではありません。

11
ファイルをインプレースで変更する方法はありますか?
かなり大きなファイル(35Gb)があり、このファイルをその場でフィルター処理したい(つまり、別のファイル用に十分なディスク容量がない)、特にgrepを行い、いくつかのパターンを無視したい-方法はありますか別のファイルを使用せずにこれを行いますか? foo:たとえば、以下を含むすべての行を除外したいとしましょう...


3
sshを介した大きな(8 GB)ファイルの転送
SCPで試しましたが、「負のファイルサイズ」と表示されます。 >scp matlab.iso xxx@xxx:/matlab.iso matlab.iso: Negative file size また、SFTPを使用してみて、2 GBのファイルが転送されるまで問題なく動作してから停止しました。 sftp> put matlab.iso Uploading matlab.iso to /home/x/matlab.iso matlab.iso -298% 2021MB -16651.-8KB/s 00:5d o_upload: offset < 0 何が間違っている可能性がありますか?SCPとSFTPは2 GBを超えるファイルをサポートしていませんか?もしそうなら、どうすればSSH経由で大きなファイルを転送できますか? 宛先ファイルシステムはext4です。LinuxディストリビューションはCentOS 6.5です。現在、ファイルシステムには(アクセス可能な)大きなファイルがあります(最大100 GB)。
27 scp  sftp  large-files 


2
ext4ボリューム内のこれらのファイルが断片化されるのはなぜですか?
ext4欠陥や不良セクタのない(磁気)ハードドライブに900GBのパーティションがあります。空のlost+foundディレクトリを除いて、パーティションは完全に空です。パーティションは、予約済みファイルシステムブロックの数を1%に設定したことを除いて、デフォルトのパラメーターを使用してフォーマットされました。 〜を使用xubuntu-15.04-desktop-amd64.isoして、パーティションのマウントポイントディレクトリに〜900MBのファイルをダウンロードしましたwget。ダウンロードが完了すると、ファイルが4つのフラグメントに分割されていることがわかりました。 filefrag -v /media/emma/red/xubuntu-15.04-desktop-amd64.iso Filesystem type is: ef53 File size of /media/emma/red/xubuntu-15.04-desktop-amd64.iso is 1009778688 (246528 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 32767: 34816.. 67583: 32768: 1: 32768.. 63487: 67584.. 98303: 30720: 2: 63488.. 96255: 100352.. 133119: 32768: 98304: 3: 96256.. 126975: 133120.. 163839: …

1
ディレクトリごとのファイル数
約100000個の小さなファイルのディレクトリがあります(各ファイルは1〜3行で、各ファイルはテキストファイルです)。ディレクトリのサイズはそれほど大きくありません(2GB未満)。このデータは、専門的に管理されたNFSサーバーにあります。サーバーはLinuxを実行します。ファイルシステムはext3だと思いますが、確かにわかりません。また、サーバーへのルートアクセス権がありません。 これらのファイルは、私が制御できない大規模な科学実験の出力です。ただし、結果を分析する必要があります。 このディレクトリでのI / O操作/処理は非常に遅くなります。ファイルを開く(Pythonでfopen)、開いているファイルから読み取る、ファイルを閉じる、すべて非常に遅いです。bash ls、duなどでは機能しません。 質問は: 処理、fopen、読み取りなどを実行するのに実用的な方法で、Linuxのディレクトリ内のファイルの最大数はいくつですか?答えは、fsタイプ、カーネルバージョン、サーバーバージョン、ハードウェアなど、多くのものに依存することを理解しています。可能な場合は、経験則が必要です。


2
ファイルシステム作成時のlargefile機能
flac形式のビデオやオーディオなどの大きなファイルを含むパーティションのファイルシステムを作成するときに-T largefileフラグを使用すると便利ですか? 同じフラグを使用してフラグなしで同じパーティションをテストし、tune2fs -l [partition]を使用して、「large_file」が有効になっている「Filesystem features」をチェックインしました。したがって、-T flag largefileを使用する必要はありませんか?

3
Emacs:巨大なファイルから行Xから行Yまでのすべての行でバッファを開く
この他の質問と同じ精神で:巨大なファイルで猫行Xから行Yへ: オープンする方法があるのEmacs内からライン(線との間などのすべての行の特定のセット(およびバッファに表示)XとY巨大なテキストファイルからの)? たとえば、ファイルの行57890000と57890010の間のすべての行を開いてバッファに表示します huge.txt 更新: 行を編集(および元のファイルに保存)することもできれば素晴らしいのですが、少なくとも行を読み取り専用(表示目的のみ)で開くことができるソリューションに興味があります。

2
大きな1行ファイルの基本的なsedコマンド:メモリを再割り当てできませんでした
250 MBのテキストファイルがすべて1行にあります。 このファイルで、a文字をb文字に置き換えます。 sed -e "s/a/b/g" < one-line-250-mb.txt それは失敗します: sed: couldn't re-allocate memory この種のタスクは、多くのメモリを割り当てずにインラインで実行できるように思えます。 仕事のためのより良いツール、またはより良い使用方法はありますsedか? GNU sedバージョン4.2.1 Ubuntu 12.04.2 LTS 1 GB RAM

4
多くの大きなファイルで重複する行を見つける方法は?
30k以下のファイルがあります。各ファイルには〜100k行が含まれます。行にはスペースが含まれていません。個々のファイル内の行はソートされ、複製されません。 私の目標:2つ以上のファイルにまたがるすべての重複行と、重複したエントリを含むファイルの名前も検索したいです。 簡単な解決策はこれです: cat *.words | sort | uniq -c | grep -v -F '1 ' そして私は走るでしょう: grep 'duplicated entry' *.words より効率的な方法がわかりますか?

1
Linuxで大きな画像を表示する
Linuxで大きな(50000x40000 px)PNG画像を表示する必要があります。残念ながら、ほとんどのツール(eog、convertなど)は、クラッシュするか、メモリが少なすぎることに注意して失敗します。 この画像を表示する方法はありますか(サイズ変更された画像と詳細の両方を表示したい)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.