ファイル部分で最も一般的な文字列を見つける

ファイル部分で最も一般的な文字列を見つける

次のファイルがあります。

o99 ケサド<タブ>エイビーシーディ
$%!H$!(<タブ>00
!sdafで<タブ>12
サルバ
&!§!&%

(どこ<tab>実際のTAB文字を表します)。

明確にすると、これには2つの「列」が含まれ、2番目の列は完全に空白になり、最初の列には空白とさまざまな記号が含まれます。たとえば、上記の入力例の最後の2行は、2番目の列には何も含めません。列はタブで区切られます。

最初の列で最も一般的な文字列を見つける方法を探しています。出力は、(好ましくは)この頻度でソートされたファイル、または最も一般的な数値文字列を順番にリストする別々の出力ファイルです。

私はLinuxを使用しています。

答え1

cut -f1 file | sort | uniq -c | sort -rn
  • cutTABをデフォルトのフィールド区切り文字として使用し、-f1最初のフィールドを選択します。
  • uniq -c (連続)繰り返し回数をカウントし、
  • sort -rn数値逆順。

\ありがとうございます{ジェフ・シャーラー}

答え2

強制awkソリューション

awk -F"\t" '{column[$1]++}END{for (var in column) print column[var]"\t"var}' INPUTFILE.txt | sort -nr -k1

関連情報