【发布时间】:2011-11-04 23:31:04
【问题描述】:
给定如下文件:-
01/09/2005
02/09/2005
03/09/2006
03/09/2006
我希望比较最后两行是否相同,如果是则返回 1,否则返回 0。
我可以使用cat tail -2获取最后两个
【问题讨论】:
给定如下文件:-
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 用于不同的行。
【讨论】:
exit 语句来返回“问题”中要求的代码。
这个怎么样:
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
【讨论】: