awk를 사용하여 특정 열 값을 기반으로 고유한 행을 인쇄하는 방법은 무엇입니까? [폐쇄]

awk를 사용하여 특정 열 값을 기반으로 고유한 행을 인쇄하는 방법은 무엇입니까? [폐쇄]

여러 필드가 있는 쉼표로 구분된 파일이 있습니다.

예:

candidate1,12,56,ATTG
candidate2,45,90,ATTG
candidate3,90,140,ATTG
candidate4,2,36,AGCT

그렇다면 답을 아는 사람이 있나요?

답변1

candidate1열 1 등을 기준으로 고유한 행을 인쇄해야 한다고 가정해 보겠습니다 candidate2. 이렇게 하면 줄 candidate1등 의 첫 번째 인스턴스가 인쇄됩니다. 열 2를 기준으로 행만 인쇄하려면 다음 $1과 같이 변경합니다.$2

awk -F, '!($1 in arr){print} {arr[$1]++}' file_name

답변2

모든 필드가 다음과 같이 쉼표로 구분된 경우

1, candidate1,12,56,ATTG
2, candidate2,45,90,ATTG 
3, candidate3,90,140,ATTG 
4, candidate4,2,36,AGCT

그럼 당신은 이런 일을

$ grep -E 'candidate1|candidate3' 파일 이름 | awk -F, '{print $0}'
1. 후보 1,12,56,ATTG
3. 후보자 3,90,140,ATTG

단일 라인의 또 다른 예

$ cat 파일 이름 | egrep 'candidate3' | awk -F, '{print $0}'
3. 후보자 3,90,140,ATTG

관련 정보