【发布时间】:2020-01-13 16:48:43
【问题描述】:
我有一个类似的示例文件
XYZAcc
ABCAccounting
Accounting firm
Accounting Aco
Accounting Acompany
Acoustical consultant
这里我需要 grep 一个单词中出现最多的 3 个字母序列
输出应该是
acc = 5 aco = 3
这在 Bash 中可行吗?
我完全不知道如何使用 awk、sed、grep 来完成它。
任何线索如何可能......
PS:没有输出,因为我不知道该怎么做,我不想写不必要的 awk -F, xyz abc... 这对任何地方都没有帮助...
【问题讨论】:
-
由于部分匹配,解决方案会很复杂——这不是单词匹配
-
您发布的那个输入文件在我看来不像 CSV。您是否只发布了真实 CSV 的一列?请发布真正具有代表性的示例输入和预期输出,涵盖您的所有用例(跨行匹配、字段内匹配、部分匹配与完整匹配、正则表达式与字符串匹配等)。
-
在您的示例中,
cou也会出现 5 次。 Bash/grep/sed 并不是这种操作的最佳语言。第一个问题,存在哪些独特的三字母代码?很难回答。 -
@EdMorton 它是我保存为 CSV 的文件 .. 只有 1 列 ;))
-
那么它只是一个纯文本文件,尽管您在其末尾添加了任何扩展名。您可以将其命名为 foo.html 或 foo.docx 或其他任何名称,但这不会使其成为那种类型的文件 - 内容使其成为任何文件类型,在这种情况下,它只是一个纯文本文件,因为没有分隔符在其中将使其成为 CSV。说它是 CSV 文件只是令人困惑。