Добавление десятичной точки к каждому элементу в столбце чисел - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть такой файл:

abc 123456 566671 487823 244211 911234 778234 671123 455321
fgd 1567988 2556118 4798739 1803812 9208018 4712324 2134981 1027431
etc..

Я хочу добавить десятичную точку 3 цифры справа от каждого числа.Поэтому, если у меня 123456, я должен получить 123,456, а если у меня 1234567, я должен получить 1234,567.

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

sed 's/.\{8\}/& /g' | sed 's/ \./ /g'

Мой ожидаемый:

abc 123.456 566.671 487.823 244.211 911.234 778.234 671.123 455.321
fgd 1567.988 2556.118 4798.739 1803.812 9208.018 4712.324 2134.981 1027.431

Мой фактический:

abc 1234.560 5666.710 4878.230 2442.110 9112.340 7782.340 6711.230 4553.210
fgd 1567.988 2556.118 4798.739 1803.812 9208.018 4712.324 2134.981 1027.431


1 Ответ

0 голосов
/ 11 февраля 2019

Мой выбор - открыть файл в Vim и выполнить поиск и замену следующим образом:

:%s/\([0-9]\{3}\)\( \|$\)/.\1\2/gc

или сделать это sed способом:

$ sed 's/\([0-9]\{3\}\)\( \|$\)/.\1\2/g' input.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...