여러 레지스터의 동일한 행에서 2개 이상의 값을 찾는 방법

여러 레지스터의 동일한 행에서 2개 이상의 값을 찾는 방법

128420개의 레지스터가 포함된 파일이 있습니다. 그런데 한 행, 두 행, N 행에서 일치하는 값 2개를 찾아야 합니다.

같은 행에서 59708, 27073 같은 값을 찾아야 하는데

여기에 예가 있습니다.

라는 파일이 있습니다location_2020_01_10_11_12_17.dat

내부적으로 3개의 레지스터가 있습니다.

3G      COF9708 59708   334     020     28.219  100.9       0       NO TOP  8       U1900   BBBBB  8      AMV    27073   \N      \N      \N      \N      59708   \N      WCO3557 \N      \N      \N      \N      XXXXXXXX        4       TC  FALSE

3G      MXZ9708 59708   334     020     18.6841 997        0       NO TOP  8       U850    AAAAAA        36012   \N      \N      \N      \N      59708   \N      WMX9708 \N      \N      \N      \N       Sin_Municipio   XXXXXXXXXX        9       TX  FALSE 

2G      MX9708Z 59708   334     020     18.6841 996        0       NO TOP  Z       G850    AAAAAA        1227    \N      \N      \N      MX9708  59708   \N      \N      \N      \N      \N      \N       Sin_Municipio   YYYYYYYYYYY        9       MA  FALSE

나는 사용했다

grep -E -- '59708|27073' cell_location_2020_01_10_11_12_17.dat

반품

egrep '59708|27073' cell_location_2020_01_10_11_12_17.dat

하지만 작동하지 않습니다.

결과 1개 표시에 대한 아이디어를 공유해 주실 수 있나요?

3G COF9708 59708 334 020 28.219 100.9 0 NO TOP 8 U1900 BBBBB 8 AMV 27073 \N \N \N \N 59708 \N WCO3557 \N \N \N \N XXXXXXXX 4 TC FALSE

답변1

두 문자열을 일치시키고 싶지만 순서를 모르시나요? 노력하다

grep '59708.*27073\|27073.*59708' file
3G COF9708 59708 334 020 28.219 100.9 0 NO TOP 8 U1900 BBBBB 8 AMV 27073 \N \N \N \N 59708 \N WCO3557 \N \N \N \N XXXXXXXX 4 TC FALSE

답변2

59708이 859708 또는 597083과 잘못 일치하지 않도록 패턴에 구분 기호를 포함해야 할 수도 있습니다.

awk를 사용할 수 있습니다.

awk '/ 27073 / && / 59708 /' location_2020_01_10_11_12_17.dat

관련 정보