3

次のようなファイルがあるとします:-

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

最後の2行が同じかどうかを比較し、同じ場合は1を返し、同じでない場合は0を返します。

最後の2つはcat tail -2

4

4 に答える 4

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

これにより1、同じ行2が異なる場合に生成されます。

于 2011-11-04T23:54:00.810 に答える
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
于 2011-11-04T23:40:36.893 に答える
2

これを試して

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

に置き換えechoexit、終了値にします。echo迅速なテストのためだけに使用されます。

#!/bin/bash
[ `cat | tail -n 2 | uniq | wc -l` -eq "1" ] && exit 1
exit 0
于 2011-11-04T23:51:01.043 に答える
1

これはあなたのために働くかもしれません:

 sed -n '$!h;${G;/\(.*\)\n\1$/{s/.*/1/p;q};s/.*/0/p}' filename.txt
于 2012-01-10T21:00:05.420 に答える