複数のファイルがあり、各ファイルサイズは1 GBを超えています。ファイルから最後の数バイトを削除する必要があります。どうすればいいですか?私はディスクスペースを節約するためにファイルを編集することを好みます。
私はHP-UXを使用しています。
答え1
ファイルの末尾から2KBを切り取ります。
truncate -s-2K file
答え2
試してみてください16進編集HP-UXでは試していませんが、機能します。ファイルの特定の場所に移動して切り取ることができます。私はそれがファイル全体を読み取らずに表示するだけの適切な場所を見つけると確信しています。
一度実行すると、矢印キーを使用して移動でき、使いやすくなります。 F1が役立ちます。 Ctrl-Gファイル内の場所に移動します。 (ヒント:最後に移動するには、画面の下部にあるファイルサイズを使用してください。)切り取る最初のバイトにカーソルを置き、切り捨てが完了したことを確認し、Esc Tを押します。終了するにはCtrl-xを押します。
答え3
システムコールにアクセスできるツールを使用してください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
答え4
split
または、ed
任意awk
のプログラミング言語を使用できます。