我想标记相同的数字,可以重复3次。我的命令是:
grep -E '[[:digit:]]{2,3}' file
标记每个数字,但我想要相同的数字。
输入:
11111 222 33
2223345678912345678901234
5
输出:
11111 222 33
2223345678912345678901234
5
我想要:
11111 222 33<-mark 222
2223345678912345678901234<-mark 222
答案1
我发现你可以使用以下命令来 grep 一个文件中的 3 个连续数字:
grep "\([0-9]\)\\1\\1" chatlog.txt
这将标记所有具有 3 个连续相同数字的行。\\1
匹配第一组中匹配的字符,在本例中为数字。
因此,要匹配 4 个相同的数字,您需要:
grep "\([0-9]\)\\1\\1\\1" chatlog.txt
您可以用更灵活的方式来定义它:
grep "\([0-9]\)\(\\1\)\{2,3\}"
上述语句将匹配一系列连续的 3 或 4 个相同数字。请注意,第一组匹配第一个数字。之后,您将再匹配该组两次或三次。
因此给出输入:
one: 1
two: 11
three: 111
four: 1111
以下命令:
grep -r "\([0-9]\)\(\\1\)\{2,3\}" test.txt
返回:
three: 111
four: 1111