ファイルの特定の場所からファイルの終わりまで行を削除する方法

ファイルの特定の場所からファイルの終わりまで行を削除する方法

行が多いファイルがあります。

1458行からファイルの終わりまでの内容を削除したいと思います。私はこれができると思いますsedが、どうすればいいかわかりません。

答え1

sed '1458,$d'

必要に応じてファイルを編集できます-i

例えば

sed -i '1458,$d' filename.txt

答え2

これを行うには多くの方法がありますが、ファイルが非常に大きい場合は、指定された場所以降のすべての行処理を停止して終了することをお勧めします。これは、このコマンドがq実行するように設計された作業ですsed

sed 1458q file

答え3

$ head -n 1458 myfile > myfile.tmp ; mv myfile.tmp myfile

注:私が知っている限り、最初に新しいファイルを作成せずに行数(bash / shellなど)に基づいてファイルを減らす明示的な方法はありません(sedまたはsed -i(n)。)新しく作成されたファイルを受け入れるディスク容量が不足している場合、これは重要です。この場合、新しいファイルのサイズを大まかに推測できる場合は、-s {number of bytes} myfileを切り捨てます。する新しいファイルを作成せずにファイルの終わりを削除します。

関連情報