我有一个包含两列的 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