百万行のファイルがあります。各行transactionid
には、重複した値を持つ名前のフィールドがあります。私がしなければならないことは、それらを明確に数えることだけです。値が何度も繰り返されても、一度だけ計算する必要があります。
答え1
さて、ファイルがカンマ区切り文字「、」で区切られたフィールドを持つテキストファイルであるとしましょう。どのフィールドが'transactionid'
どこにあるかがわかります。あなたの'transactionid'
フィールドが7番目のフィールドであるとしましょう。
awk -F ',' '{print $7}' text_file | sort | uniq -c
これにより、7番目のフィールドで固有/固有の発生回数が計算され、結果が印刷されます。
答え2
最も洗練されたアプローチではないかもしれませんが、次のようにすればうまくいきます。
awk '{print $1}' your_file | sort | uniq | wc -l
$1
解析するフィールドに対応する数字はどこにありますか?
答え3
uniq
ファイルをソートする必要はありません
。
awk 'a[$1] == "" { a[$1]="X" } END { print length(a) }' file