2011-09-13 91 views

回答

0

使用head拿到第一N - 1行的文件,其中N是文件(wc -l計算)

head -n $(($(cat lipsum.log | wc -l) - 1)) lipsum.log工作

3

的長度,你並不需要的力量sedawk的超級權力,如果你只想根據模式刪除一行。您可以使用:

./hit_ratio.sh | grep -v ' rows selected.' 

可以做與awksed但它是一個有點像試圖殺死一個熱核彈頭飛:

pax> ./hit_ratio.sh | sed '/ rows selected./d' 
    193830   432   
185260   125 
pax> ./hit_ratio.sh | awk '$2!="rows"{print}' 
    193830   432   
185260   125 
0

管通過

sed -e '/\w*[0-9]\+ rows\? selected/d' 
1

我的第一個建議是不要輸出該行,列表hit_ratio.sh在這裏也許它可以修改不輸出臨牛逼線

無論如何,如果你需要刪除最後一行的最簡單的辦法是使用頭:

./hit_ratio.sh | head -n -1 

使用-n和一個負數,使打印頭所有,但最後N行的輸入

+2

這不是便攜式;並非所有頭(1)實現都具有此功能。 – tripleee

4

如果您知道要刪除最後一行,但不包含其他包含相似文本的行,或者您不知道將包含哪些文本,sed是唯一合適的。

./hit_ratio.sh | sed '$d' 
2

或者,用你的SQL腳本做些什麼。有時,打開set nocount on語句可消除「行受影響」行。