파일의 열을 비교하고 일치 항목 수를 인쇄합니다.

파일의 열을 비교하고 일치 항목 수를 인쇄합니다.

두 개의 열이 있는 CSV 파일이 있습니다. 두 열을 비교하고 일치하는 항목 수를 인쇄하고 싶습니다.

file1

M,M
A,M
A,A
M,A

예상 출력:

첫 번째 행의 첫 번째 열이 동일하면 출력 파일의 두 번째 열을 인쇄하고 싶습니다.

M (for first line)
0 (for second line not same, zero value)
A (for third line)
0 (for fourth line not same, zero value)

답변1

awk -F , '{ if ($1 == $2) print $2; else print 0; }' inputfile

답변2

awk -F, '!/^$/ && $1 == $2 { numMatch++ }; END { print numMatch }' YourFile

답변3

그리고 GNU grep:

$ grep -cP '(.+) \1' file
2

업데이트된 입력으로:

$ grep -cP '(.+),\1' file    
2

고쳐 쓰다

그리고 awk:

$ awk -F',' '{print $1 == $2 ? $2 : 0}' file
M
0
A
0

사용할 수 있는 경우 perl:

$ perl -F',' -anle 'print $F[0] eq $F[1] ? $F[1] : 0' file
M
0
A
0

답변4

awk명령을 시도해 보세요.

awk -F, '!/^$/ {if($1==$2) {print $2} else {print "0"}}' file

관련 정보