File 将文件与具有不同行数的原始文件进行比较
我有一组文件,一个答案文件和几个结果文件 我需要将每个结果文件与答案进行比较,但结果文件可能没有相同的编号或行 应答文件File 将文件与具有不同行数的原始文件进行比较,file,unix,awk,compare,row,File,Unix,Awk,Compare,Row,我有一组文件,一个答案文件和几个结果文件 我需要将每个结果文件与答案进行比较,但结果文件可能没有相同的编号或行 应答文件 q1, true q2, false q3, false q4, true q5, true 结果1 q1, true q2, false q3, true data/q1, true data/q2, false data/q3, true 我想要张桌子 q1, 1 q2, 1 q3, 0 q4, 0 q5, 0 P>所以如果数据不匹配,则它的1个或0个,如果行不
q1, true
q2, false
q3, false
q4, true
q5, true
结果1
q1, true
q2, false
q3, true
data/q1, true
data/q2, false
data/q3, true
我想要张桌子
q1, 1
q2, 1
q3, 0
q4, 0
q5, 0
<> P>所以如果数据不匹配,则它的1个或0个,如果行不存在,将其视为0,结果文件夹中的所有文件都应该发生相同的动作。
到目前为止,我尝试的是:
awk -F "," '{print $0}' answer.csv | grep -f - result01.csv > me.csv
它只打印正确的答案
如果结果数据如下所示,是否也有机会这样做
结果1
q1, true
q2, false
q3, true
data/q1, true
data/q2, false
data/q3, true
看看这个命令,它可以用来逐行比较两个已排序的文件
例如:
$ comm -2 <(sort answerFile) <(sort resultFile)
q1 true
q2 false
q3 false
q4 true
q5 true
第一列包含file1特有的行,第二列包含两个文件共有的行。查看可用于逐行比较两个排序文件的命令
例如:
$ comm -2 <(sort answerFile) <(sort resultFile)
q1 true
q2 false
q3 false
q4 true
q5 true
第一列包含文件1特有的行,第二列包含两个文件共有的行。使用awk将结果文件r与答案文件a进行比较:
使用awk将结果文件r与答案文件a进行比较:
你想让我们帮你做作业吗=@75英寸钢琴家:到目前为止,我有一个awk-F,{print$0}answer.csv | grep-F-result01.csv>me.csv,它只打印正确的asnwers,把你的搜索放在你的questions@sputnick:不,这不是家庭作业,我有很多结果,在我看来,用unix检查它们比用Excel更容易。你想让我们做你的家庭作业吗=@75英寸钢琴家:到目前为止,我有一个awk-F,{print$0}answer.csv | grep-F-result01.csv>me.csv,它只打印正确的asnwers,把你的搜索放在你的questions@sputnick:不,这不是家庭作业,我处理了很多结果,在我看来,用unix检查结果要比用excelI检查结果容易得多,但当我试图用result重播r时出现了一个问题。csvI会从扩展名.csv和您后来使用-F添加的尝试中猜测,您的实际文件与发布的文件不同,例如q1,真的不是真的!?这就是它目前的工作方式,但不能让它像您提到的那样工作:awk'FNR==NR{r[$1]=$2;next}$1{print$1,r[$1]==2?1:0;next}{print$1,0}'result01.csv answer.csv>me01.csv每次我用result01.csv和answer.csv替换r和a时,我都会在屏幕上看到一个语法错误。很高兴它现在可以工作了。我不知道你说的R是什么意思?r只是我给result01.csv的文件名。我设法得到了结果,但当我试图用result重播r时出现了问题。csvI会从扩展名.csv和您后来使用-F添加的尝试中猜测,您的实际文件与发布的文件不同,例如q1,true不是q1 true!?这就是它目前的工作方式,但不能让它像您提到的那样工作:awk'FNR==NR{r[$1]=$2;next}$1{print$1,r[$1]==2?1:0;next}{print$1,0}'result01.csv answer.csv>me01.csv每次我用result01.csv和answer.csv替换r和a时,我都会在屏幕上看到一个语法错误。很高兴它现在可以工作了。我不知道你说的R是什么意思?r只是我给出的result01.csv文件的名称。若要获得所需的输出,请导入awk“{print$1,/^[:space:]/}”若要获得所需的输出,请导入awk“{print$1,/^[:space:]/}”