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개의 숫자 집합이 있고 다음과 같이 끝나기를 원한다고 가정해 보겠습니다. 세 개의 숫자 조합을 검색하여 이러한 숫자 중 세 개가 무작위 순서로 포함된 행이 검색 결과로 나열되도록 하려면 다음을 사용할 수 있습니다.

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

grep과 Perl 정규식(PCRE)을 사용합니다.

관련 정보