複数のレジスタの同じ行で2つ以上の値を見つける方法

複数のレジスタの同じ行で2つ以上の値を見つける方法

128420個のレジスタを含むファイルがあります。ただし、1行、2行、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

2つの文字列を一致させたいのですが、順序がわかりませんか?努力する

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

関連情報