특정 열의 공통 숫자를 기반으로 모든 행을 유지합니다.

특정 열의 공통 숫자를 기반으로 모든 행을 유지합니다.

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

관련 정보