1

ファイルのセット、1つの回答ファイル、およびいくつかの結果ファイルがあります。各結果ファイルを回答と比較する必要がありますが、結果ファイルの数または行が同じでない場合があります。

回答ファイル

q1, true
q2, false
q3, false
q4, true
q5, true

結果1

q1, true
q2, false
q3, true

欲しいテーブル

q1, 1
q2, 1
q3, 0
q4, 0
q5, 0

したがって、データが一致する場合は1、それ以外の場合は0であり、行が存在しない場合は再び0と見なします---結果フォルダー内のすべてのファイルに対して同じアクションが発生するはずです。

私がこれまでに試したこと:

awk -F "," '{print $0}' answer.csv | grep -f - result01.csv > me.csv

正解のみを出力します

結果のデータが次のようになっている場合、同じことを行う可能性はありますか?

結果1

data/q1, true
data/q2, false
data/q3, true
4

2 に答える 2

2

commソートされた 2 つのファイルを 1 行ずつ比較するために使用できるコマンドを見てみましょう。

例えば:

$ comm  -2  <(sort answerFile) <(sort resultFile)
        q1 true
        q2 false
q3 false
q4 true
q5 true

最初の列には file1 に固有の行が含まれ、2 番目の列には両方のファイルに共通の行が含まれます。

于 2013-03-18T15:01:20.170 に答える
2

を使用して、結果ファイルを応答ファイルawkと比較します。ra

$ awk 'FNR==NR{a[$1]=$2;next}$1 in a{print $1,a[$1]==$2;next}{print $1,0}' r a
q1, 1
q2, 1
q3, 0
q4, 0
q5, 0
于 2013-03-18T15:11:08.577 に答える