У меня есть CSV-файл, который генерируется ежедневно и автоматически, вывод которого похож на следующий пример:
"N","3.5",3,"Bob","10/29/17"
"Y","4.5",5,"Bob","10/11/18"
"Y","5",6,"Bob","10/28/18"
"Y","3",1,"Jim",
"N","4",2,"Jim","09/29/17"
"N","2.5",4,"Joe","01/26/18"
Мне нужно преобразовать текст так, чтобы он был сгруппирован по человеку (четвертый столбец)и все записи в одной строке и в столбцах повторяются с использованием одной и той же последовательности: 1,2,3,5.В некоторых ячейках могут отсутствовать данные, но они должны оставаться в последовательности, поэтому столбцы выстраиваются в линию.Поэтому вывод, который мне нужен, будет выглядеть так:
"Bob","N","3.5",3,"10/29/17","Y","4.5",5,"10/11/18","Y","5",6,"10/28/18"
"Jim","Y","3",1,,"N","4",2,"09/29/17"
"Joe","N","2.5",4,"01/26/18"
Я открыт для использования sed, awk или почти любой стандартной команды Linux для выполнения этой задачи.Я пытался использовать awk, и хотя я близко, я не могу понять, как это закончить.
Вот команда, где я рядом.В нем перечислены заголовок и имена, но нет других данных:
awk -F"," 'NR==1; NR>1 {a[$4]=a[$4] ? i : ""} END {for (i in a) {print i}}' test2.csv