比较不区分大小写的字符串然后计算重复项
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]}'
但是,如果您在问题中包含预期输出,那么我可以为您提供更准确的答案。
所以我有一个如下所示的文本文件:(第一列是重复次数,第二列是数据)
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]}'
但是,如果您在问题中包含预期输出,那么我可以为您提供更准确的答案。