文字列から特定の文字が欠落している単語を削除しますか?

文字列から特定の文字が欠落している単語を削除しますか?

文字列から途中にピリオドのないすべての単語を削除したいユースケースがあります。誰でもソリューションを提供できますか?それでは、どのように機能するかを説明してください。

文字列の例:

Testy.mctestface 1337 taco

望ましい結果:

Testy.mctestface

ベストアンサー1

使用grep:

grep -oE '\w+\.\w+'

\w+- ランダムな単語の文字一致(等しい[a-zA-Z0-9_]
+- 数量子 - 1回と無限に一致、できるだけ複数回一致、必要に応じて返す(欲)
\.- 文字通り文字一致.(大文字と小文字の区別)

オプションは戻りを-o意味します。grepただこのオプションを使用すると、一致時に正規表現-Eを拡張できます。

これはデフォルトでピリオドを含むすべての単語または単語の組み合わせと一致します。

$ echo 'foo bar Testy.mctestface 1337 taco' | grep -oE '\w+\.\w+'
Testy.mctestface

単語に特殊文字を含めることができる場合は、次を使用できます。

grep -oE '\S+\.\S+'

\S+空白以外の文字を一度から無限まで一致させます。

おすすめ記事