多数のファイルの2列目の要素の出現回数を数える必要があります。私が使用しているスクリプトは次のとおりです。
{
el[$2]++
}
END {
for (i in el) {
print i, el[i] >> "rank.txt"
}
}
多数のファイルで実行するために、私はfind | xargs
この方法を使用しています:
find . -name "*.txt" | xargs awk -f script.awk
問題は、出力ファイルの行数をrank.txt
(を使用してwc -l rank.txt
)カウントすると、取得する数(たとえば、7600)が2番目の行の一意の要素の数(たとえば、7300)よりも大きいことです。 a:
find . -name "*.txt" | xargs awk '{print $2}' | sort | uniq | wc -l
実際に:を与える
awk '{print $1}' rank.txt | sort | uniq | wc -l
適切な数の要素を取得します(例に従って、7300を取得します)。つまり、出力ファイルの最初の列の要素が一意ではないことを意味します。しかし、これは起こらないはずです!