6桁の文字列を使用して各行で一致する3つの数字を取得するUnixコマンド

6桁の文字列を使用して各行で一致する3つの数字を取得するUnixコマンド

6つの数字を検索するために3つの一致する数字を含む行をリストするUNIXコマンドまたは一連のコマンドを知っている人はいますか?たとえば、38 39 40 41 42 43を使用して検索するときに、各行に38 40 43または39 41 42などの組み合わせがリストされているかどうかを確認したいと思います。ありがとうございます。

答え1

file異なるスペースで区切られた数字を含む行を含むファイルがあり、38、39、40、41、42、43などの6つの数値セットがあり、次のように終了したいとします。 3つの数値の組み合わせを検索して、これらの数のうち3つがランダムな順序で含まれる行を検索結果として一覧表示するには、次のようにします。

grep -P  '((^|\s+)(38|39|40|41|42|43)(?=($|\s))){3}' file

grepとPerl正規表現(PCRE)を使用してください。

関連情報