找出文件部分中最常见的字符串

找出文件部分中最常见的字符串

我有一个如下所示的文件:

o99 克萨德<选项卡>ABCDE
$%!H$!(<选项卡>00
!sdaf 作为<选项卡>12
萨尔瓦
&!§! &%

(在哪里<tab>代表真正的 TAB 字符)。

为了澄清:它包含两个“列”,第二个可能完全是空的,第一个可能包含空格和各种符号。例如,上面示例输入中的最后两行在第二列中不包含任何内容。各列由制表符分隔。

我正在寻找一种方法来查找第一列中最常见的字符串。输出可以是(最好)按此频率排序的文件,也可以是按顺序列出最常见数字字符串的单独输出文件。

我正在使用Linux。

答案1

cut -f1 file | sort | uniq -c | sort -rn
  • cut使用TAB作为默认字段分隔符;-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

相关内容