grep 命令显示具有不同拼写的相同单词

Dip*_*Dip 1 grep search

我创建了一张员工表。

    1 Andy Account
    2 Grecie HR
    3 Jyorge Marketing
    4 Seeya HR
    5 Princy Account
    6 Siya Production
Run Code Online (Sandbox Code Playgroud)

此处第 4 名员工和第 6 名员工的姓名相同,但拼写不同。所以我想只显示使用 grep 命令的记录。我试过这样:

grep S[iee]ya emp
Run Code Online (Sandbox Code Playgroud)

grep S[[i][ee]]ya emp
Run Code Online (Sandbox Code Playgroud)

但它没有用。有什么解决办法吗?

Eri*_*ouf 10

[...]创建字符类,而不是组,您要使用包含|或运算符的组

grep 'S\(ee\|i\)ya' emp
Run Code Online (Sandbox Code Playgroud)

会做这样一个组并找到那两行。您还可以通过告诉 grep 使用扩展正则表达式 with 来清理一下-E,然后您不必转义字符以使它们变得特别

grep -E 'S(ee|i)ya' emp
Run Code Online (Sandbox Code Playgroud)


小智 9

您需要 OR 运算符“|” 在grep中:

grep -E 'S(i|ee)ya' emp
Run Code Online (Sandbox Code Playgroud)
4 Seeya HR
6 Siya Production
Run Code Online (Sandbox Code Playgroud)