Редактировать первую строку большого текстового файла
У меня огромный текстовый файл, слишком большой, чтобы все это помещалось в память. Все, что мне нужно сделать с этим текстовым файлом, это отредактировать первую строку (это файл 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