LINUX.ORG.RU

Сообщения alexander1389

 

Замена значения в файле

Форум — General

Доброго времени суток.

Имеется файл вида

ID1  Name1   Param1   Num11  Num12  Num13 ... Num1N  Blabla1^M
...
IDK  NameK   ParamK   NumK1  NumK2  NumK3 ... NumKN  Blabla1^M

где NumIJ - некоторое число. Нужно в строке с определенным ID заменить это число на другое. Про число известна только его позиция в строке (например, 7 столбец). При этом между столбцами может быть произвольное число whitespace-символов. Написал что-то вроде

awk -v val=$VALUE '{if ($1=="IDX") sub(".*", val, $7); print > "./tmp";}' FILENAME
Возникло две проблемы. Во-первых, естественно, теряется форматирование, все пробельные символы после сборки строки обратно заменяются одним. Это неприятно, но не критично. Во-вторых, теряется CRLF, что уже плохо (на выходе нужен файл с переводом строк в формате CRLF).

Вопрос: как быть? Что-то ничего хорошего в голову пока не приходит.

Спасибо.

alexander1389
()

RSS подписка на новые темы