У меня есть CSV-файл, который выглядит следующим образом:
таблица
Необработанный CSV (с разделением;) для анализа:
number;abc;gender;middel;name;last name;existfrom;existuntil;ahv;specialnum;UID;pert;address;street;numberstr;po box;place;cntr;cntrcd;from;until;date;extra
1;100000388;lady;W;jane;doe;16.08.1930;31.12.9999;7.56777E+12;500000387;;N;WOA;angel;47;;6020;moon;NL;16.01.2016;31.12.9999;31.12.9999;
2;100000453;mister;M;jon;doe;29.12.1934;31.12.9999;7.56663E+12;500000452;;N;WOA;angel;11;;6314;moon;GR;16.01.2016;31.12.9999;22.09.2008;mutation
3;100000469;lady;W;jane;doe;16.02.1941;31.12.9999;7.56486E+12;500000468;;N;WOA;angel;11;;6314;mooon;DE;16.01.2016;31.12.9999;22.09.2008;mutation
4;100000490;mister;M;jon;doe;09.05.1936;31.12.9999;7.56841E+12;500000497;;N;WOA;silicon;65;;6340;moon;CZ;16.01.2016;31.12.9999;15.12.2010;Mutation
Форматированная таблица для удобства чтения:
+--------+-----------+--------+--------+------+-----------+------------+------------+-------------+------------+-----+------+---------+---------+-----------+--------+-------+-------+--------+------------+------------+------------+-----------+
| number | abc | gender | middel | name | last name | existfrom | existuntil | ahv | specialnum | UID | pert | address | street | numberstr | po box | place | cntr | cntrcd | from | until | date | extra |
+--------+-----------+--------+--------+------+-----------+------------+------------+-------------+------------+-----+------+---------+---------+-----------+--------+-------+-------+--------+------------+------------+------------+-----------+
| 1 | 100000388 | lady | W | jane | doe | 16.08.1930 | 31.12.9999 | 7.56777E+12 | 500000387 | | N | WOA | angel | 47 | | 6020 | moon | NL | 16.01.2016 | 31.12.9999 | 31.12.9999 | |
| 2 | 100000453 | mister | M | jon | doe | 29.12.1934 | 31.12.9999 | 7.56663E+12 | 500000452 | | N | WOA | angel | 11 | | 6314 | moon | GR | 16.01.2016 | 31.12.9999 | 22.09.2008 | mutation |
| 3 | 100000469 | lady | W | jane | doe | 16.02.1941 | 31.12.9999 | 7.56486E+12 | 500000468 | | N | WOA | angel | 11 | | 6314 | mooon | DE | 16.01.2016 | 31.12.9999 | 22.09.2008 | mutation |
| 4 | 100000490 | mister | M | jon | doe | 09.05.1936 | 31.12.9999 | 7.56841E+12 | 500000497 | | N | WOA | silicon | 65 | | 6340 | moon | CZ | 16.01.2016 | 31.12.9999 | 15.12.2010 | Mutation |
+--------+-----------+--------+--------+------+-----------+------------+------------+-------------+------------+-----+------+---------+---------+-----------+--------+-------+-------+--------+------------+------------+------------+-----------+
Среди прочих задач мне нужно получить 3 последние цифры из столбца I и поместить их в столбец O, но безуспешно.
например.Столбец I имеет номер 7567766885966, мне нужно получить 966 и поместить его в столбец O, заменив существующий номер в столбце O.
До сих пор мне удавалось это сделать:
#!/bin/sh
oldCsvFile=old.csv
newCsvFile=new.csv
#insert first line as is to the new file
head -1 $oldCsvFile > $newCsvFile
#replace columns 7 and 13 /w overwriting values
awk '{FS=";"; OFS=FS; $7="\"01.08.2019\""; $13="\"RandomStreet\""; print $0}' $oldCsvFile >> $newCsvFile
удалить вторую и последнюю строку, которые являются первой и последней строкой исходного файла / с перезаписанными столбцами
sed -i '2 d' $newCsvFile
sed -i '$ d' $newCsvFile
вставить неизмененную последнюю строку в новый файл
tail -1 $oldCsvFile >> $newCsvFile'
Можете ли вы помочь мне?