修改和比较两个文件的相似度
Modifying and Comparing similarity of two files
我有 2 个文件。 file1的样本值如下:
1313 0 60
1313 1 60
1314 0 60
1314 1 57
1315 1 60
1316 0 60
1316 1 57
1317 1 57
1318 1 57
1333 0 57
1333 1 57
1334 0 60
1334 1 60
file2的示例值如下:
813 0 91
813 1 91
814 0 91
814 1 91
815 0 96
815 1 91
816 0 91
816 1 91
817 1 96
818 0 91
832 0 96
833 0 91
833 1 91
834 0 96
我正在尝试修改 file1 并创建一个具有以下值的 file3(如您所见,最后一个中的值file1 的列不相关):
1 0
1 1
2 0
2 1
3 1
4 0
4 1
5 1
6 1
21 0
21 1
22 0
22 1
另外,需要修改file2,创建一个file4,其值如下(文件中的值file2 的最后一列无关紧要):
1 0
1 1
2 0
2 1
3 0
3 1
4 0
4 1
5 1
6 0
20 0
21 0
21 1
22 0
创建file3和file4后,我打算使用diff[=49检查它们的相似性=] 效用。要生成 file3 和 file4,我正在尝试编写一个 awk
脚本。但是作为 awk
的初学者,我发现这个任务非常耗时。任何指导将不胜感激。
我们可以从第一行的 </code> 中获取值,然后在公式中使用它来计算偏移量。这假设最小的 <code>
在第一行。
awk 'NR==1 { i= } { print -i+1, }'
例如,您可以这样做:
awk 'NR==1 { i= } { print -i+1, }' file1 > file3
awk 'NR==1 { i= } { print -i+1, }' file2 > file4
diff file3 file4
这是我之前的版本,在我注意到您真的在寻找偏移量之前。我原以为您只是想根据 </code> 中的更改来更改它。我们可以设置一个变量来检查行之间的值变化,并且只在 <code>
变化时增加计数器。这假定已分组。
awk 'n!= { i++ } { print i, } { n= }'
例如,您可以这样做:
awk 'n!= { i++ } { print i, } { n= }' file1 > file3
awk 'n!= { i++ } { print i, } { n= }' file2 > file4
diff file3 file4
我有 2 个文件。 file1的样本值如下:
1313 0 60
1313 1 60
1314 0 60
1314 1 57
1315 1 60
1316 0 60
1316 1 57
1317 1 57
1318 1 57
1333 0 57
1333 1 57
1334 0 60
1334 1 60
file2的示例值如下:
813 0 91
813 1 91
814 0 91
814 1 91
815 0 96
815 1 91
816 0 91
816 1 91
817 1 96
818 0 91
832 0 96
833 0 91
833 1 91
834 0 96
我正在尝试修改 file1 并创建一个具有以下值的 file3(如您所见,最后一个中的值file1 的列不相关):
1 0
1 1
2 0
2 1
3 1
4 0
4 1
5 1
6 1
21 0
21 1
22 0
22 1
另外,需要修改file2,创建一个file4,其值如下(文件中的值file2 的最后一列无关紧要):
1 0
1 1
2 0
2 1
3 0
3 1
4 0
4 1
5 1
6 0
20 0
21 0
21 1
22 0
创建file3和file4后,我打算使用diff[=49检查它们的相似性=] 效用。要生成 file3 和 file4,我正在尝试编写一个 awk
脚本。但是作为 awk
的初学者,我发现这个任务非常耗时。任何指导将不胜感激。
我们可以从第一行的 </code> 中获取值,然后在公式中使用它来计算偏移量。这假设最小的 <code>
在第一行。
awk 'NR==1 { i= } { print -i+1, }'
例如,您可以这样做:
awk 'NR==1 { i= } { print -i+1, }' file1 > file3
awk 'NR==1 { i= } { print -i+1, }' file2 > file4
diff file3 file4
这是我之前的版本,在我注意到您真的在寻找偏移量之前。我原以为您只是想根据 </code> 中的更改来更改它。我们可以设置一个变量来检查行之间的值变化,并且只在 <code>
变化时增加计数器。这假定已分组。
awk 'n!= { i++ } { print i, } { n= }'
例如,您可以这样做:
awk 'n!= { i++ } { print i, } { n= }' file1 > file3
awk 'n!= { i++ } { print i, } { n= }' file2 > file4
diff file3 file4