У меня проблема с огромными файлами данных. Заголовки этих файлов насчитывают 79 строк. После этих строк данные двоичные. Я хочу изменить заголовок с помощью сценария bash. Я использовал sed до сих пор. Проблема в том, что когда я просто хочу изменить заголовок, либо читается и записывается весь файл данных (1), либо процесс прерывается после этих 79 строк (2). Мне нужно изменить заголовок в 8 строк. Поэтому мои команды, относящиеся к этой проблеме:
(1)
sed -i '1,79 s/ConverterPositionM2C1='"$M2C1"'/ConverterPositionM2C1='"$M2C1N"'/' $FileName
(2)
sed -i -e '79q' -e 's/ConverterPositionM1C2='"$M1C2"'/ConverterPositionM1C2='"$M1C2N"'/' $FileName
Использование первой команды работает во всех случаях, но для больших файлов (20 ГБ) требуется несколько часов. Поскольку я хочу изменить параметры в 8 строках, которые отличаются друг от друга, мне нужно поместить 8 из этих команд в свой скрипт, а выполнение скрипта занимает еще больше времени. Вторая команда копирует только заголовок. Данные потеряны.
100.00000
станет10.00000
(а не010.00000
). Количество строк остается прежним. - person Jarmikala   schedule 03.12.2014100.00000
на10.00000
либо с начальным, либо с конечным пробелом, чтобы количество байтов осталось прежним? - person John1024   schedule 03.12.2014