AWK를 사용하여 아래와 같이 파일의 두 열을 비교하고 싶습니다. 누군가 도움을 줄 수 있습니까?
예 :
Col1 Col2
---- ----
2 A
2 D
3 D
3 D
3 A
7 N
7 M
1 D
1 R
이제 AWK를 사용하여 다음 알고리즘을 구현하여 해당 열 사이의 일치 항목을 찾고 싶습니다.
list1[] <=== Col1
list2[] <=== Col2
NewList[]
for i in col2:
d = 0
for j in range(1,len(col2)):
if i == list2[j]:
d++
NewList.append(list1[list2.index[i]])
예상 결과:
A ==> 2 // means A matches two times to Col1
D ==> 4 // means D matches two times to Col1
....
그래서 위의 코드를 AWK 스크립트로 작성하고 싶은데 아직 사용하지 않았기 때문에 너무 복잡합니다.
당신의 도움을 주셔서 대단히 감사합니다
그다지 복잡하지는 않습니다. 문자로 색인 된 배열에 개수를 유지하고 끝에 배열을 인쇄합니다.
awk '{cnt[$2]++} END {for(c in cnt) print c, cnt[c]}' test.txt
# A 2
# D 4
# M 1
# N 1
# R 1
{cnt[$2]++} # For each row, get the second column and increase the
# value of the array at that position (ie cnt['A']++)
END {for(c in cnt) print c, cnt[c]}
# When all rows done (END), loop through the keys of the
# array and print key and array[key] (the value)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다