0

我有一项任务要做,即找到一些在某些特定文本文件中重复的字符串(首字母缩略词)。

下面是一个示例:

...
the
the
het
het
het
teh
teh
teh
teh
...

在第一步中,我可以用这个命令计算每个出现的次数:

cat text_file.txt | sort | uniq -c | sort -gr

输出是这样的:

2 the
3 het
4 teh

但我还需要“计数/求和”这三个输出,因为它们使用相同的三个字符但顺序不同。

你们能给我一些帮助吗?

4

1 回答 1

2

在给定空 FS 和 sorted_in 的情况下,使用 GNU awk 将字符串拆分为字符:

$ cat tst.awk
{
    split($0,chars,"")
    PROCINFO["sorted_in"] = "@val_str_asc"
    key = ""
    for (i in chars) {
        key = key chars[i]
    }
    cnt[key]++
}
END {
    PROCINFO["sorted_in"] = "@ind_str_asc"
    for (key in cnt) {
        print key, cnt[key]
    }
}

$ cat file
the
het
teh
foobar
fobar
oofrab

$ awk -f tst.awk file
abfoor 2
abfor 1
eht 3
于 2019-04-27T22:00:00.307 回答