Shell 命令,用于查找文本文件单行上出现的模式/单词的最长连续简单重复



文本文件中单行上出现的模式(例如:"ABC"(的最长连续简单重复是什么?

我相信我需要将正则表达式(正则表达式(与 grep 匹配。但是我无法弄清楚正确的陈述。

$ grep '["pattern"]+' 文件.txt

必须返回指定模式的单行上最长的连续简单重复

如果您只需要匹配的文本。

$ cat file.txt 
ABC
OTHER ABCABCABC OTHER
ABCABC
$ grep -f <(grep -oE "(ABC)+" file.txt | sort | tail -1) file.txt
OTHER ABCABCABC OTHER

awk版本:

awk '{for (i=1;i<=NF;i++) {n=split($i,a,"ABC")-1;if(n>x) {c=$0;x=n}}} END {if (c) print c}' file
OTHER ABCABCABC OTHER

它测试每个领域,并用溢出,看看有多少ABC。如果它比其他行多,请存储该行并在最终打印。

最新更新