文件的內容比較有如下總計數記錄,並用拖車記錄
101,abc,2017-03-15,Linux
222,xyz,2016-10-10,Unix
987,def,2017-01-03,Solaris
567,tek,2014-01-09,windows
Trailer|20170331|4
我需要比較實際的記錄行是4,等於總記錄上拖車(4)。
文件的內容比較有如下總計數記錄,並用拖車記錄
101,abc,2017-03-15,Linux
222,xyz,2016-10-10,Unix
987,def,2017-01-03,Solaris
567,tek,2014-01-09,windows
Trailer|20170331|4
我需要比較實際的記錄行是4,等於總記錄上拖車(4)。
我已經做了幾個假設:
你沒有指定你正在使用什麼特定的操作系統或shell,所以你可能需要調整一些命令,由於細微的差異。
無論如何,這裏就是我想出了:
recchk()
{
#Here's the file we're working with:
myfile=testfile.txt
#Let's figure out how many records are in it
recs=`wc -l $myfile | cut -f1 -d" "`
#Now subtract 1 because we don't want to count the trailer
let recs=`expr $recs - 1`
echo "There are $recs data records in the file."
#Now we'll find the trailer record and get the third field
trcnt=`tail -1 $myfile | cut -f3 -d"|"`
echo "Trailer says there are $trcnt records."
#Now we'll check to make sure all is well.
if [ $recs -ne $trcnt ]; then
echo "Uh-oh! They don't match\!"
else
echo "Right on, daddy-o\! We're righteous\!"
fi
}
希望這有助於!
謝謝羅傑,工作完全正常,只需要上面的一個更多的信息,我如何通過文件名作爲參數在函數recchk(),以便這可以跨多個腳本使用。 –
如果您將recchk()函數放入單獨的文件(如recchk.sh)中,則可以使用'source
假設我有5個文本文件,並且對於每個文件,我必須檢查記錄的總數並與拖車記錄進行比較,看它是否匹配。顯然5個文件會有不同的名稱,我想通過在函數recchk()中傳遞文件名來重用它們,我怎樣才能調用文件名 –
您是否嘗試過自己解決問題? – Inian
您想如何獲得輸出? – Inian