比较不区分大小写的字符串然后计算重复项

Compare case insensitive strings then count duplicates

所以我有一个如下所示的文本文件:(第一列是重复次数,第二列是数据)

27 amalyais
17 knc154
14 formulaoneboy
13 mathchallenged31
9 GooGooo1234
8 rkinder
7 tony
7 rammnatt2003

我的代码读取文本文件,删除所有重复项,并计算数据自身重复的次数。但是,有些数据是大写的,而其他数据是小写的。如果发生这种情况,我的代码现在会打印出如下内容:

27 amalyais
12 AMALYAIS
9 Amalyais

有办法解决这个问题吗? 这是我的 awk 代码。我是 awk 的新手,所以我仍然在为很多事情而苦苦挣扎:(temp1 是包含重复数据的文本文件,temp2 的输出如上)

sort -k2 < temp1 |
awk '!z[]++{a[]=[=12=];} END {for (i in a) print z[i], a[i]}' |
sort -rn -k1 > temp2

在您的 awk 命令中,您可以在执行任何逻辑之前将整个记录转换为小写:

awk '{[=10=]=tolower([=10=])} !z[]++{a[]=[=10=];} END {for (i in a) print z[i], a[i]}'

但是,如果您在问题中包含预期输出,那么我可以为您提供更准确的答案。