巨大なテキストファイルがあり、全体をメモリにページングするには大きすぎます。このテキストファイルで必要なのは、最初の行を編集することだけです(CSVファイルであり、タイトルを変更する必要があります)。
これをbashで行う簡単な方法はありますか?
less
を使用して編集する内容を確認し、sed
を使用して変更を加えることができます。これにより、ファイル全体をロードせずに編集できます。
別の方法は、ファイルを分割し、編集して再度結合することです:
split -b 10000k <file>
and to join:
cat xa* > <file>
変更により行の長さが変更された場合、ファイル全体を書き直す必要があります。たとえば、SOの この説明 を参照してください。データをデータベースに保存することを検討する必要があります。
これを念頭に置いて、sedを使用してファイルをストリーム編集できます。最初の行を置き換えるには、次のようにします(GNU sed)。
< oldfile sed '1c\new_heading' > newfile