检查两个文件的一部分的相等性

是否有可能检查两个文件的第一行是否相等使用diff (或另一个简单的bash命令)?

[一般检查第一/最后k行,甚至第i行到第j行的相等性]

要区分两个文件的前k行:

 $ diff <(head -k file1) <(head -k file2) 

相似,区分最后的k行:

 $ diff <(tail -k file1) <(tail -k file2) 

为了让我对j有不同的看法:

 diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2) 

我的解决方案似乎相当基本和初学者相比,上述dogbane,但在这里都是一样的!

 echo "Comparing the first line from file $1 and $2 to see if they are the same." FILE1=`head -n 1 $1` FILE2=`head -n 1 $2` echo $FILE1 > tempfile1.txt echo $FILE2 > tempfile2.txt if diff "tempfile1.txt" "tempfile2.txt"; then echo Success else echo Fail fi 

我的解决方案使用了patchutils程序集的filterdiff程序。 以下命令显示从行号j到k的file1和file2之间的区别:

 diff -U 0 file1 file2 | filterdiff --lines jk 

下面的命令显示了这两个文件的第一行。

 krithika.450> head -1 temp1.txt temp4.txt ==> temp1.txt <== Starting CXC <...> R5x BCMBIN (c) AB 2012 ==> temp4.txt <== Starting CXC <...> R5x BCMBIN (c) AB 2012 

如果两个文件中的第一行相同,则下面的命令显示“是”。

 krithika.451> head -1 temp4.txt temp1.txt | awk '{if(NR==2)p=$0;if(NR==5){q=$0;if(p==q)print "yes"}}' yes krithika.452>