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

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

我创建了一张员工表。

    1 Andy Account
    2 Grecie HR
    3 Jyorge Marketing
    4 Seeya HR
    5 Princy Account
    6 Siya Production

这里第四名员工和第六名员工的名字相同,但拼写不同。所以我想使用 grep 命令仅显示该记录。我尝试过:

grep S[iee]ya emp

grep S[[i][ee]]ya emp

但没有成功。有什么解决办法吗?

答案1

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

grep 'S\(ee\|i\)ya' emp

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

grep -E 'S(ee|i)ya' emp

答案2

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

grep -E 'S(i|ee)ya' emp

4 Seeya HR
6 Siya Production

答案3

grep 'S.*ya' 

似乎也有效。量词*匹配次数为零到无限次。

相关内容