У меня есть этот вывод с помощью кошки csvfile:
Center_code Name City_code
800 SCHOOL NUMBER ONE 8000
801 SCHOOL NUMBER TWO 8010
802 INSTITUTE GALCERAN PINE 8020
803 EASD PINE 8030
804 SCHOOL NUMBER THREE 8040
805 INSTITUTE CAN CLOS 8050
806 ESCRBC CAT 8060
807 SCHOOL NUMBER FOUR 8070
Я хочу распечатать каждое название центра (столбец 2) с awk, но использование только первого слова и не повторяя их. Вывод - это:
SCHOOL
INSTITUTE
EASD
ESCRBC
Используя другую команду awk, я хочу рассчитать, сколько раз делает каждое слово, появляются в столбце 2. Вывод - это:
SCHOOL 4
INSTITUTE 2
EASD 1
ESCRBC 1
Как я могу сделать это?
Попробуйте это,
awk 'NR>1{print $2}' csvfile | sort | uniq -c
Вывод:
1 EASD
1 ESCRBC
2 INSTITUTE
4 SCHOOL
или awk
только:
awk 'NR>1{seen[$2]++} END{for (w in seen){printf "%s %s\n",w,seen[w];}}' csvfile
Вывод:
ESCRBC 1
SCHOOL 4
INSTITUTE 2
EASD 1
ОБНОВЛЕНИЕ:
Для разделенного от запятой файла:
Попробуйте,
awk -F, 'NR>1{split($2,arr," ");print arr[1]}' csvfile | sort | uniq -c
или awk
только:
awk -F, 'NR>1{split($2,arr," "); seen[arr[1]]++} END{for (w in seen){printf "%s %s\n",w,seen[w];}}' csvfile