У меня проблема с .csv в bash.
У меня есть .csv как показано ниже:
dog,1, yellow, ball
cat, 2,green, skate
dog, 3 , yellow, ball
cat , 4 , green, skate
dog, 5, yellow, ball
cat , 6, green, skate
Где ключ состоит из столбцов, 1, 2 и 4. Сначала я должен сделать копию этого .csv со всеми обрезанными строками (без пробелов), а затем удалить все дублированные строки, но сопоставить строки с исходным .csv с исходными пробелами.
Я пытаюсь как:
awk '{sub(/^ +/,""); gsub(/, /,",")}1' input.csv >> temp.csv #to do the trim
Это должно привести к:
dog,10,yellow,ball
cat,10,green,skate
dog,10,yellow,ball
cat,10,green,skate
dog,10,yellow,ball
cat,10,green,skate
awk -F, 'dup[$1,$2,$4]++' temp.csv #to get the duplicated
, что приведет к:
dog,10,yellow,ball
cat,10,green,skate
Но я запас в отображение на оригинальную часть .csv. Пожалуйста, обратите внимание, что оригинал не является «обычным» интервалом, ожидаемый результат - это только первые две строки. Когда мне нужно получить ожидаемый результат:
dog,10, yellow, ball
cat, 10,green, skate