AWK -Как подсчитать сохраненные или индексированные массивы

Это может быть так просто, как показано ниже:

{ read -r; while read -r line; do echo "$line"; done; } < abc.txt

Здесь {означает группировать команду. Используя read -r, мы пропустим первую строку!

2
22.05.2019, 14:30
3 ответа

Используйте команду

awk '{a[$1]++}  END { for ( n in a ) { i++; print n "=" a[n]} print i }' file

.


#!/bin/bash
echo '1
2
1
4
5
4' | awk '{a[$1]++}  END { for ( n in a ) { i++; print n "=" a[n]} print i }'

Вывод будет

1=2
2=1
4=2
5=1
4
2
27.01.2020, 21:58

В GNU awk, length(my_arry)будет отображать количество элементов, которые вы взяли my_arry.

в других реализациях, которые не поддерживают длину массива, вы можете сделать:

awk '{ … } END{ for (elements in my_arry) count++; print count }'
3
27.01.2020, 21:58

Выполнено описанным ниже способом

команда:awk '{a[$1]++}END{for(x in a)print a[x]"="x}' filename

command: @praveen:~$ awk '{a[$1]++}END{for(x in a)print a[x]"="x}' p.txt
3=1
2=2
1=3
praveen@praveen:~$
-1
27.01.2020, 21:58

Теги

Похожие вопросы