在文本文件的一行上出现的最长连续连续重复图案(例如:“ ABC”)是什么?
我认为我需要对grep使用正则表达式(regex)匹配。但是我无法找到正确的说法。
$ grep'[“ pattern”] +'file.txt
必须返回指定模式的单行上最长的连续简单重复
答案 0 :(得分:0)
如果您只想要匹配的文本。
$ cat file.txt
ABC
OTHER ABCABCABC OTHER
ABCABC
$ grep -f <(grep -oE "(ABC)+" file.txt | sort | tail -1) file.txt
OTHER ABCABCABC OTHER
答案 1 :(得分:0)
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
。如果它比其他行多,请存储该行并最终打印。