Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 将文件与具有不同行数的原始文件进行比较_File_Unix_Awk_Compare_Row - Fatal编程技术网

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:]/}”