比较同一文件中的两行

时间:2011-11-04 23:31:04

标签: linux unix diff cmp uniq

给出如下文件: -

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

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

我可以使用cat tail -2

获取最后两个

4 个答案:

答案 0 :(得分:3)

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

这对于相同的行会产生1,对于不同的行会产生2

答案 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

答案 2 :(得分:2)

试试这个

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

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

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

答案 3 :(得分:1)

这可能对您有用:

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