ディスク容量不足:ファイルをコピーせずにテキストファイルの最初のn行を削除する[重複]

ディスク容量不足:ファイルをコピーせずにテキストファイルの最初のn行を削除する[重複]

$rmv.という巨大なテキストファイルの最初の行を削除したいと思います$filename。このテキストファイルは大きすぎて、私のハードドライブに2つのコピーを保存できません。

以下は、次の空のファイルを残します$filename

tail -n +$rmv "$filename" > "$filename" 

$filename合計を保存するための空き容量が不足しているため、以下を実行できません$filename.tmp

tail -n +$rmv "$filename" > "$filename.tmp" && mv "$filename.tmp" "$filename"

重要な場合は、Mac OS X El Capitanを使用しています。

ベストアンサー1

あなたが持っている場合perl

{
  tail -n +"$rmi"
  perl -e 'truncate STDOUT, tell STDOUT'
} <file 1<>file

この方法ではファイルのバックアップがないため、破損が発生するとデータが失われる可能性があります。

おすすめ記事