grep コマンドは、スペルが異なる同じ単語を表示します。

grep コマンドは、スペルが異なる同じ単語を表示します。

従業員テーブルを作成しました。

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

ここで4番目と6番目のスタッフは名前は同じですが、スペルが異なります。そのため、grepコマンドを使用してそのレコードのみを表示したいと思います。私は以前試しました:

grep S[iee]ya emp

そして

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

しかし、成功しませんでした。解決策はありますか?

答え1

[...]|or演算子を含むグループを使用したいグループの代わりに文字クラスを作成します。

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

このようなグループを作成し、その2行を探します。 grepに拡張正規表現を使用するように指示してクリーンアップすることもできます。-Eその後、文字を特別にするために文字をエスケープする必要はありません。

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

答え2

grep には OR 演算子 "|" が必要です。

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

4 Seeya HR
6 Siya Production

答え3

grep 'S.*ya' 

うまくいくようです。数量子一致数の*範囲は 0 から無限大までです。

関連情報