String 如何在bash中将字母顺序错误的字符串grep?
我有一个任务要做,就是找到一些字符串(首字母缩略词),在一些特定的文本文件中重复 以下是一个示例:String 如何在bash中将字母顺序错误的字符串grep?,string,bash,gnu-coreutils,acronym,String,Bash,Gnu Coreutils,Acronym,我有一个任务要做,就是找到一些字符串(首字母缩略词),在一些特定的文本文件中重复 以下是一个示例: 。。。 这个 这个 赫特 赫特 赫特 德 德 德 德 ... 在第一步中,我可以计算每个命令出现的次数: cat text_file.txt | sort | uniq-c | sort-gr 输出是这样的: 2 3赫特 4德 但我还需要“计数/求和”这三个输出,因为它们使用相同的三个字符,但顺序不同 关于这一点,你们能给我一些帮助吗?使用GNU awk将字符串拆分为字符,给定一个空FS并排
。。。
这个
这个
赫特
赫特
赫特
德
德
德
德
...
在第一步中,我可以计算每个命令出现的次数:
cat text_file.txt | sort | uniq-c | sort-gr
输出是这样的:
2
3赫特
4德
但我还需要“计数/求和”这三个输出,因为它们使用相同的三个字符,但顺序不同
关于这一点,你们能给我一些帮助吗?使用GNU awk将字符串拆分为字符,给定一个空FS并排序为:
$ 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
使用GNU awk将字符串拆分为字符,给定一个null FS,并按以下方式排序:
$ 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
请在你的问题中添加你想要的样本输入输出。我想你的意思是“字谜”而不是“首字母缩略词”
sort-g
做什么?我通常使用sort-n
按计数前缀进行排序。请将该样本输入的所需输出添加到您的问题中。我想您的意思是“anagram”而不是“acronym”sort-g
做什么?我通常使用sort-n
按计数前缀排序。非常感谢!有了这个脚本,我就有了我想要的东西。非常感谢非常感谢你!有了这个脚本,我就有了我想要的东西。非常感谢