У меня есть большой файл file.dat , дамп базы данных в формате CSV, который выглядит следующим образом:

file_id,line_id,st_x,st_y,value1,value2,...value100
111111,1,22.22222,33.33333,0.1234567,0.246890,0.369258,...
.....

В нем несколько миллионов строк.

Внезапно я понял, что хочу изменить имена столбцов: изменить st_x на lon и st_y на lat .

Простое копирование файла на моем компьютере занимает некоторое время, скажем, T_copy секунд.

Редактирование файла с

sed -i 's/st_y/lat/' file.dat

занимает T_sed секунд, где T_sed ~ 1.7 T_copy .

Есть ли более быстрый метод? Я не возражаю, если строка замены должна иметь такое же количество символов, что и строка назначения.

Примечание: я уверен, что этот вопрос уже задавался, просто не вижу, как его найти.

1 ответ1

2

Я предлагаю просмотреть файл с помощью программы просмотра полуночного командира (F3 или mcview), затем

  • Нажмите F4 (Hex),
  • Нажмите F2 (Изменить),
  • Нажмите Tab, чтобы переместить курсор к текстовому столбцу средства просмотра,
  • Поместите курсор на символы, которые вы хотите перезаписать, и введите новые значения, заполняя остатки старых значений пробелами,
  • Нажмите F6 (Сохранить)
  • Нажмите F10 (Выход)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .