AWK - 配列のストレージまたはインデックスを計算する方法

AWK - 配列のストレージまたはインデックスを計算する方法

発生回数を計算する必要があるデータがあります。

1
2
1
2
3
1

以下のawkコマンドを使用して正常に動作しました。

awk -F'","' '{ a[$1]++ } END { for (n in a) print n "=" a[n] } ' text.txt

そして出力:

2=2
3=1
1=3

もう1つの問題は、配列に格納されている数を数える必要があることです。上記の出力の行数を計算する必要があります。予想出力:サム

答え1

GNU では、awk接続したlength(my_arry)要素の数が表示されます。my_arry撮影。

配列の長さをサポートしていない他の実装では、次のことができます。

awk '{ … } END{ for (elements in my_arry) count++; print count }'

答え2

コマンドの使用

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

答え3

これは以下の方法で行われる。

注文する: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:~$

関連情報