Редактировать первую строку большого текстового файла

У меня огромный текстовый файл, слишком большой, чтобы все это помещалось в память. Все, что мне нужно сделать с этим текстовым файлом, это отредактировать первую строку (это файл CSV, и мне нужно изменить заголовки).

Есть ли простой способ сделать это в bash?

2 ответа

Решение

Ты можешь использовать less чтобы увидеть, что вы хотите редактировать и использовать sed внести изменения. Таким образом, вы редактируете без загрузки всего файла.

Другой способ - разделить файл, отредактировать и снова присоединиться:

split -b 10000k <file>

and to join:

cat xa* > <file>

Если ваша модификация изменяет длину строки, весь файл должен быть переписан, см., Например, это обсуждение SO. Возможно, вам следует рассмотреть возможность сохранения данных в базе данных.

Имея это в виду, вы можете редактировать файл с помощью sed. Чтобы заменить первую строку, сделайте что-то вроде этого (GNU sed):

< oldfile sed '1c\new_heading' > newfile
Другие вопросы по тегам