次のようなファイルがあるとします:-
01/09/2005
02/09/2005
03/09/2006
03/09/2006
最後の2行が同じかどうかを比較し、同じ場合は1を返し、同じでない場合は0を返します。
最後の2つは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
に置き換えecho
てexit
、終了値にします。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