используя комбинацию cut
, grep
, и sort
, с небольшой помощью форматирования с помощью sed
и tr
. Также ваш выходной файл будет отсортирован как по ключевым словам, так и по значениям для каждого ключевого слова:
#get sorted, unique keyword list
cut -d, -f 1 file | sort -u |\
while read keyword ; do
#echo keyword and sorted, unique occurrences of values
#for keyword as output
echo $keyword,$(grep "^$keyword," file | cut -d, -f2 |\
sort -u | tr '\n' ',' | sed 's/,$//' ) \
>> sorted_file
done
-одинлайнер:
cut -d, -f 1 file | sort -u | while read keyword ; do echo $keyword,$(grep "^$keyword," file | cut -d, -f2 | sort -u | tr '\n' ',' | sed 's/,$//' ) >> sorted_file ; done