두 필드의 값이 동일한 경우 행을 인쇄하는 방법은 무엇입니까?

두 필드의 값이 동일한 경우 행을 인쇄하는 방법은 무엇입니까?

저는 유닉스를 처음 접했고 데이터 하위 집합에 관한 질문이 있습니다. 누구의 도움에도 감사하겠습니다. 수백만 개의 행이 있는 23G 입력 파일이 있지만 첫 번째와 네 번째 열이 동일한 행(대괄호 이름)만 유지하고 싶습니다. 내 데이터 세트의 처음 몇 행은 다음과 같습니다.

tscaffold94_798049_802097   999 NA tscaffold94_798049_802097   999 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1029 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1044 NA -0.0463767871013283
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1045 NA -0.939576278422824
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1130 NA -0.0831304705346077
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1180 NA -0.931681175211672
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1187 NA -0.940010336852543
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1202 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1224 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1269 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1313 NA -0.201478578143067
tscaffold94_798049_802097   999 NA tscaffold94_798049_802097  1384 NA 1
tscaffold94_798049_802097   999 NA tscaffold94_878564_884314  3259 NA -0.595441932439136
tscaffold94_798049_802097   999 NA tscaffold94_878564_884314  3304 NA 0.745699172241005
tscaffold94_798049_802097   999 NA tscaffold94_878564_884314  3319 NA -0.570318634275133
tscaffold94_798049_802097   999 NA tscaffold94_878564_884314  3588 NA -0.60363963711489

답변1

awk이 경우에는 열이 스크립트의 변수가 되므로 awk동등성을 쉽게 확인하고 인쇄(현재 행 암시)와 같은 작업을 수행할 수 있습니다.

awk '{if($1 == $4) print}' < input

관련 정보