Я новичок в сценариях оболочки.У меня есть CSV-файл "a.csv" с 15000 строк и 15 столбцов.В нем есть один столбец с именем "id_data" .
В файле .csv всегда указан столбец 3.
Значения в этом наборе данных выглядят следующим образом:
A,B,id_data,C,D,E,F,...
a,b,12345_85485,c,d,e,f,...
a,b,45786_456322,c,d,e,f,...
a,b,12345_325489,c,d,e,f,...
a,b,_45230_14693,c,d,e,f....
, где данные столбцов в диапазоне от чисел до даты, строки, ссылки.
Я хочу подсчитать уникальные значения в столбце 3 после символа '_' .
Для этого я хочу разбить этот столбец на основе числа до _
и числа после _
на два разных столбца, а именно: «Данные ID1» и «Данные ID2».Разделение не обязательно, хотя.Основной целью является вычисление уникальных чисел после '_' в столбце 3.
Вывод должен выглядеть следующим образом в файле csv:
A,B,ID1 Data,ID2 Data,D,E,F...
a,b,12345,85485,d,e,f,...
a,b,45786,456322,d,e,f,...
a,b,12345,325489,d,e,f,...
a,b,45230,4693,d,e,f,...
Iпопытался сделать это с помощью следующей команды:
cat a.csv | sed -Ee 's/(.*)id_data/\1ID1 Data ID2 Data/' -e 's/,[_ ]/,/' -e 's/_/,/'
Он напечатал вывод в соответствии с требованием.Но нет никаких изменений в столбцах файла CSV.Напечатанная o / p выглядит как a, b, 12345,85485, c, d, e, f, ... .
Как применить изменение к столбцам в файле csv?Любые советы будут полезны.Спасибо
* Обратите внимание, что в начале может быть место или даже '_'.