比较同一文件中的两行

给定一个如下所示的文件:

01/09/2005 02/09/2005 03/09/2006 03/09/2006 

我希望比较最后两行是否相同,如果是,则返回1,如果不是,则返回0。

我可以得到最后两个使用cat tail -2

 tail -n 2 filename.txt | uniq | wc -l 

这将产生1相同的线, 2为不同的。

这个怎么样:

 lc=`wc -l filename.txt | cut -d " " -f1` if [ $lc -ge 2 ] then ulc=`tail -n 2 filename.txt | uniq | wc -l` if [ $ulc -eq 1 ] then echo "Last two lines are identical" fi fi 

尝试这个

 [ `cat | tail -n 2 | uniq | wc -l` -eq "1" ] && echo 1 || echo 0 

exit替换echo使其成为退出值。 使用echo只是为了更快的测试。

 #!/bin/bash [ `cat | tail -n 2 | uniq | wc -l` -eq "1" ] && exit 1 exit 0 

这可能适合你:

  sed -n '$!h;${G;/\(.*\)\n\1$/{s/.*/1/p;q};s/.*/0/p}' filename.txt