特定の列の共通数に基づいてすべての行を保持します。

特定の列の共通数に基づいてすべての行を保持します。

15個の列を持つファイルがあり、列番号に同じ値(1、3、5、8、11、14)を持つ行をフィルタリングしたいと思います。デフォルトでは、Mass列とArtificial_massは同じ共通値を持つ必要があります。たとえば、このようなテーブルです。

Input

mass    Ret_time_min    mass    Ret_time_min    mass    Ret_time_min    mass    artifical_mass  Ret_time_min    mass    artifical_mass  Ret_time_min    mass    artifical_mass  Ret_time_min
229 1.516   229 1.503   229 1.516   231 229 1.468   231 229 1.499   231 229 1.63
229 1.573   229 1.597   229 1.585   231 229 1.576   231 229 1.59    233 231 12.89
229 1.905   229 2.004   229 2.186   232 230 11.919  235 233 12.91   235 233 12.929
229 2.303   229 2.139   229 2.242   238 236 0.689   238 236 0.684   238 236 0.689
229 2.59    229 2.291   229 2.365   238 236 0.803   238 236 0.796   238 236 0.788
229 2.737   229 2.484   229 5.41    239 237 0.68    239 237 0.69    239 237 0.691
229 5.398   229 2.589   229 5.593   239 237 6.961   239 237 6.959   239 237 6.966
242 5.163   242 4.612   242 5.141   244 242 12.126  244 242 6.182   244 242 12.503
242 5.194   242 5.123   242 5.475   244 242 12.503  244 242 11.847  245 243 0.065

Output

mass    Ret_time_min    mass    Ret_time_min    mass    Ret_time_min    mass    artifical_mass  Ret_time_min    mass    artifical_mass  Ret_time_min    mass    artifical_mass  Ret_time_min
229 1.516   229 1.503   229 1.516   231 229 1.468   231 229 1.499   231 229 1.63
242 5.163   242 4.612   242 5.141   244 242 12.126  244 242 6.182   244 242 12.503

簡単な行で試してみましcat My.File.txt | awk '$1==$3 || $5==$1 && $8==$1 && $10==$1 && $14==$1'たが、うまくいかないようです。

ベストアンサー1

この試み、

awk 'NR==1 || ( $1==$3 && $1==$5 && $1==$8 && $1==$11 && $1==$14 )' file

おすすめ記事