小编Tom*_*myy的帖子

Grep 所有以相同子字符串开头和结尾的字符串

我需要 grep 所有以至少 4 个字母的相同子字符串开头和结尾的行。子串不能重叠。

想象一下我们有输入:

ABCDOOOPABCD
BBBBOLPOKBBBB
ACLMDJKAC
12345---12345
ABCD
Run Code Online (Sandbox Code Playgroud)

那么输出应该是:

ABCDOOOPABCD
BBBBBOLPOKBBBBB
12345---12345
Run Code Online (Sandbox Code Playgroud)

command-line grep bash

6
推荐指数
1
解决办法
1709
查看次数

正则表达式查找所有 UUID,其中每组中的字母按字母顺序排序

UUID 由 5 组组成,由 '-' 分隔,由十六进制字符组成。我正在尝试创建一个正则表达式来查找所有 UUID,其中每个组中的字母按字母顺序排序。

输入:

9a578cf1-bc9f-49ad-8294-a61b736088c5
64efc3d9-448a-4902-a6c6-61849ac6c7ef
75b39f65-b614-427a-af62-922534bee490
Run Code Online (Sandbox Code Playgroud)

输出:

9a578cf1-bc9f-49ad-8294-a61b736088c5
Run Code Online (Sandbox Code Playgroud)

每组字母为:acf bcf ad abc,按字母顺序排列。

第二个 UUID 中每个组中的字母未按字母顺序排序:efc 和 accef

一个组也只能有一次相同的字母,因此第三个 UUID 中的“bee”也不会被视为按字母顺序排列。

我尝试使用以下 grep 命令:

grep -P "^[0-9]*a?[0-9]*b?[0-9]*c?[0-9]*d?[0-9]*e?[0-9]*f?[0-9]*(-[0-9]*a?[0-9]*b?[0-9]*c?[0-9]*d?[0-9]*e?[0-9]*f?[0-9]*){4}$" file.txt
Run Code Online (Sandbox Code Playgroud)

但这给了我一个回溯错误。

command-line grep regular-expression

5
推荐指数
1
解决办法
993
查看次数

标签 统计

command-line ×2

grep ×2

bash ×1

regular-expression ×1