Добавьте символ в позиции N определенного столбца CSV, используя терминал Mac - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть csv с результатами выборов

PARTY1,00000003,01546,0020,PARTY2,00000001,02315,0022,PARTY3,00000000,00000,0006,

2-й столбец после названия партии - процент голосов (01546 ... 02315 ...).
Есть ли способ добавить точку (.) С помощью терминала Mac между 3-м и 4-м символом определенного столбца, чтобы получить такой вывод:

PARTY1,00000003,015.46,0020,PARTY2,00000001,023.15,0022,PARTY3,00000000,000.00,0006,

Все столбцы процентов будут иметь 5 цифр,В таблице есть еще столбцы до и после.

Я работаю в местной газете, печатая макет.У меня нет большого опыта кодирования.Просто немного базового HTML и JS.

Мы получим от избирательных органов несколько csv (по одному на каждую провинцию).

Я знаю, как управлять этими данными с помощью электронной таблицы (Excel, libre office).Но я хочу избежать их, если это возможно, так как я вижу, что некоторые действия, которые я обычно делаю (объединение, удаление столбцов, добавление заголовков), могут быть выполнены быстрее и проще через терминал.

Я новичок в терминалекоманды.Я нашел здесь и там несколько очень полезных команд (cat для объединения csv из нескольких областей в одной и вырезания для извлечения нужных мне столбцов), но ничего о вставке символов (кроме случаев, когда они идут в начале строки)

Мои выходные данные будут отправлены в Datawrapper или Carto, в виде интерактивной карты, и, вероятно, Qgis выполнит слияние с shp и сгенерирует pdf для газеты.

1 Ответ

0 голосов
/ 26 ноября 2018
awk 'BEGIN{FS=OFS=","} {for(i=3; i<=NF; i=i+4) $i=sprintf("%.2f",$i/100)}1' file

Вывод:

PARTY1,00000003,15.46,0020,PARTY2,00000001,23.15,0022,PARTY3,00000000,0.00,0006,

Обновление:

awk 'BEGIN{FS=OFS=","} {for(i=3; i<=NF; i=i+4) $i=substr($i,1,3)"."substr($i,4,2)}1' file

Вывод:

PARTY1,00000003,015.46,0020,PARTY2,00000001,023.15,0022,PARTY3,00000000,000.00,0006,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...