-1

非常に大きなテキスト ファイル (600 MB) があり、そのファイルから特定の行を削除したいと考えています。

削除したい行番号を知っています。これを達成するための本当に簡単な方法はありますか?

4

4 に答える 4

0

PowerShell の場合:

$linesToRemove = 15,534,814,4632
$encoding = 'ASCII' # or 'UTF8', depending on what you need
Get-Content foo.sql |
  ForEach-Object { $i=0 } { $i++ } |
  Where-Object { $linesToRemove -notcontains $i }
于 2012-03-22T10:23:14.480 に答える
0

これを行う簡単な方法はありません。ファイル全体を読み取り、必要な変更を加えてから、ファイルを書き直す必要があります。ファイルの途中から他の方法で削除することはできません。

マイナーな最適化として、最初の変更に続いてファイルの一部を書き直すだけで済みます。しかし、その後全体を書き直さなければなりません。削除された行がファイルの末尾にある場合、これは重要な最適化になる可能性があります。

このため、このような変更を行う場合、大きなテキスト ファイルは最適な保存形式ではありません。データベースはパフォーマンスの向上につながります。

于 2012-03-22T10:00:39.100 に答える
0

これは C# で簡単に実行できます。しかし、これがあなたの望むものかどうかはわかりません。

于 2012-03-22T10:08:45.430 に答える
0

回答ありがとうございます。Windows 用の Vim エディターで簡単な方法を見つけました。

参考までに、問題のファイルは mysql データベースを再作成するために提供された .sql ファイルであったため、実際に操作するしかありませんでした。

みんなありがとう。

于 2012-03-22T10:10:30.953 に答える