最初の列は同じ値ですが、2番目の列が異なる行の数は、シェルスクリプトまたはawkを使用して計算します。 ファイルは1つの列値を持つ行の数が一致しています
したがって400.00 1234
400.00 2134
400.05 4314
400.05 9766
で構成されて2,2、...... uniq
の集計オプションを使用してはどう
最初の列は同じ値ですが、2番目の列が異なる行の数は、シェルスクリプトまたはawkを使用して計算します。 ファイルは1つの列値を持つ行の数が一致しています
したがって400.00 1234
400.00 2134
400.05 4314
400.05 9766
で構成されて2,2、...... uniq
の集計オプションを使用してはどう
あるべきカウント:これは最初であることを前提としてい
$ awk '{print $1}' inputfile | uniq -c
2 400.00
2 400.05
すべての同一の値が順次表示されます。これが当てはまらない場合は、数値入力でソートしてからawk
にパイプすることができます。
これはおそらく動作します:
sort <file> | uniq | awk '{print $1}' | uniq -c
内訳:
sort | uniq # Eliminates duplicate entries and sorts things for uniq calls
次へ:
0123最後にawk '{print $1}' # Extract the first column
を
ご入力ファイルがソートされているかどうか、このawkはワンライナーは、あなたのために関係なく、それを計算します:
awk '{a[$1]+=($0 in b)?0:1;b[$0]}END{for(x in a)print x":"a[x]}' file
私はいくつかのDUPの値含むように、少しあなたの入力を変更:
kent$ cat f
400.00 1234
400.00 1234
400.00 1234
400.00 2134
400.05 4314
400.05 9766
kent$ awk '{a[$1]+=($0 in b)?0:1;b[$0]}END{for(x in a)print x":"a[x]}' f
400.05:2
400.00:2
を
は '私が計算したい、他のユーティリティは必要ありません、このために十分であろう最初の列では同じ値を持ち、2列目では異なる行の数 '私はあなたのawk | uniqがそれをしないと思います。 – Kent
@Kent問題は少し不明です。明らかに私の提案された解決策は受け入れられたので、それがすべきことをしています。 – Jens
列の値400.00に2つのレコードがあり、これらの2つのレコードで構成されるファイルを作成するとします。同様に、値400.50、.......のファイルを作成する必要があります。 –