Я новичок в bash. У меня есть файл .csv. Он содержит 2 столбца (имя и номер). Вот содержимое столбцов:
Name,Num
ex1,10.20.30.40
ex2,20.30.40.30
ex3,10.45.60.20
ex4,10.20.30.40
ex5,20.30.40.30
Я хочу объединить строки, чтобы их 2-й столбец был идентичен. Например здесь у меня есть 2 строки, что их 2-й столбец "10.20.30.40". Я хочу, чтобы вывод был таким:
Name,Num
ex1 ex4,10.20.30.40
ex2 ex5,20.30.40.30
ex3,10.45.60.20
, поэтому столбец имени в первой строке содержит как ex1, так и ex2. Я много искал, и все, что я нашел, было, как сортировать строки на основе их 2-го столбца:
echo $(awk -F ',' '{print $2}' name.csv | sort) >> sub2.csv
, но он только сортирует и печатает второй столбец в «sub2.csv».
Я также попробовал этот скрипт:
echo $(awk -F',' '{k=$2;if(a[k])a[k]=a[k] OFS $1;else{a[k]=$0;b[++i]=k}}
END{for(x=1;x<=i;x++)print a[b[x]]}' name.csv) >> sub2.csv
, но вывод сбивает с толку (например, строки не разделены).
Не могли бы вы рассказать мне, как это сделать?