是否可以使用diff
(或其他简单的bash命令)检查两个文件的第一行是否相等?
[通常检查第一个/最后一个k
行的相等性,甚至检查行i到j的相等性
答案 0 :(得分:9)
要区分两个文件的前k行:
$ diff <(head -k file1) <(head -k file2)
类似,要区分最后的k行:
$ diff <(tail -k file1) <(tail -k file2)
将i行区分为j:
diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2)
答案 1 :(得分:1)
与上面的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
答案 2 :(得分:1)
我的解决方案使用filterdiff程序集的patchutils程序。以下命令显示了从行号j到k的file1和file2之间的区别:
diff -U 0 file1 file2 | filterdiff --lines j-k
答案 3 :(得分:0)
下面的命令显示两个文件的第一行。
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
如果两个文件中的第一行相同,则下面的命令显示yes。
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>