鑑於類似如下的文件: -比較在同一個文件中的兩行
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
爲不同。
如何:
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
+1:討厭shell腳本:d – vines
試試這個
[ `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
我的解決方案是一樣的!除了我添加了一個檢查<2行的文件。 – jman
我的解決方案是一樣的!除此之外,我添加了一個'exit'語句來返回「問題」中要求的代碼。 –