web-dev-qa-db-ja.com

大きなファイルをその場で編集するにはどうすればよいですか?

それぞれ1 GBを超えるサイズのファイルがいくつかあります。ファイルから最後の数バイトを削除する必要があります。どうすればできますか?ディスクスペースを節約するために、ファイルを編集することを好みます。

HP-UXを使用しています。

18
Hemant

hexedit を使用してみてくださいHP-UXでは試していませんが、動作するはずです。ファイル内の場所に移動して切り捨てることができます。私はそれがファイル全体を読み取るのではなく、表示する適切な場所を探すだけだと確信しています。

一度起動すると、矢印キーを使用して移動するのはかなり簡単です。 F1は助けを与えます。 Ctrl-Gはファイル内の場所に移動します(ヒント:最後に移動するには、ディスプレイの一番下の行からファイルのサイズを使用します)。切り捨てる最初のバイトにカーソルを合わせ、切り捨てが完了したことを確認したらEscape Tを押します。 Ctrl-xが終了します。

10
Richm

ファイルの終わりから2キロバイトを切り取ります。

truncate -s-2K file
14

たとえば、ddを使用できます。

dd if=yourfile of=outname bs=4k count=thefirstX4kb
6
maxschlepzig

truncateシステムコールにアクセスできるツールを使用します。 POSIXツールのみで実行できます。警告、ブラウザに入力されました。 ddは通常のunixコマンドよりもさらに許容範囲の広いエラーであるため、特に注意してください。 123456は、保持するバイト数です。

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456

Perlバージョンはより読みやすくなっています。

Perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate

splitまたはedawkまたは任意のプログラミング言語を使用できます。

1