ファイルの列を比較し、一致数を印刷します。

ファイルの列を比較し、一致数を印刷します。

2つの列を持つCSVファイルがあります。 2つの列を比較し、一致するアイテム数を印刷したいと思います。

file1

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

予想出力:

最初の行の最初の列が同じであれば、出力ファイルの2番目の列を印刷したいと思います。

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

関連情報