同様の行をリストする方法は?

同様の行をリストする方法は?

区切り記号は "";

入力する:

foo#foo_ehh113#The password of user 111 will expire within the next seven d
foo#foo_ehh204#The password of user 111 will expire within the next seven d
sadf#sadf this is a sample_text
foo#foo_ehh204#The password of user 222 will expire within the next seven da
foo - moreeee test
foo#foo_ehh113#The password of user 222 will expire within the next seven da
foo#foo_ehh113#The password of user 333 will expire within the next seven day
ldr#ldr_another sample text
foo#foo_ehh204#The password of user 333 will expire within the next seven day

出力:

foo#foo_ehh113#The password of user 111 will expire within the next seven d
foo#foo_ehh204#The password of user 111 will expire within the next seven d
foo#foo_ehh204#The password of user 222 will expire within the next seven da
foo#foo_ehh113#The password of user 222 will expire within the next seven da
foo#foo_ehh113#The password of user 333 will expire within the next seven day
foo#foo_ehh204#The password of user 333 will expire within the next seven day

たとえば、与えられた行に同様の単語があります。

The
password
of
user
will
expire
within
the

私の質問:どの程度似たような行だけを出力する方法はありますか?前任者。 8つの単語に一致します。
これを検出できるシェルスクリプトはありますか?

答え1

テキストを順番に一致させるには、次のことを試すことができます。

$ grep 'The.*password.*of.*user.*will.*expire.*within.*the' file 
foo#foo_ehh113#The password of user 111 will expire within the next seven d
foo#foo_ehh204#The password of user 111 will expire within the next seven d
foo#foo_ehh204#The password of user 222 will expire within the next seven da
foo#foo_ehh113#The password of user 222 will expire within the next seven da
foo#foo_ehh113#The password of user 333 will expire within the next seven day
foo#foo_ehh204#The password of user 333 will expire within the next seven day

テキストグループ(group.txtという名前)を含むファイルがある場合は、次のものを使用できます。

$ grep $(printf "%s.*" $(cat group.txt)) file

答え2

コマンドラインにnextと入力して、必要なだけキーワードを入力できます。

grep -E "one|two|three" file.txt

ソースがdmesgの場合は、次のようにします。

dmesg | grep -E "one|two|three" 

関連情報