我只想刪除包含查詢中選定行數的行。我的意思是最後一行。請幫忙。刪除基於條件的行
[[email protected] scripts]# ./hit_ratio.sh
193830 432
185260 125
2 rows selected.
我只想刪除包含查詢中選定行數的行。我的意思是最後一行。請幫忙。刪除基於條件的行
[[email protected] scripts]# ./hit_ratio.sh
193830 432
185260 125
2 rows selected.
使用head
拿到第一N - 1
行的文件,其中N是文件(wc -l
計算)
head -n $(($(cat lipsum.log | wc -l) - 1)) lipsum.log
工作
的長度,你並不需要的力量sed
或awk
的超級權力,如果你只想根據模式刪除一行。您可以使用:
./hit_ratio.sh | grep -v ' rows selected.'
您可以做與awk
和sed
但它是一個有點像試圖殺死一個熱核彈頭飛:
pax> ./hit_ratio.sh | sed '/ rows selected./d'
193830 432
185260 125
pax> ./hit_ratio.sh | awk '$2!="rows"{print}'
193830 432
185260 125
管通過
sed -e '/\w*[0-9]\+ rows\? selected/d'
我的第一個建議是不要輸出該行,列表hit_ratio.sh在這裏也許它可以修改不輸出臨牛逼線
無論如何,如果你需要刪除僅最後一行的最簡單的辦法是使用頭:
./hit_ratio.sh | head -n -1
使用-n和一個負數,使打印頭所有,但最後N行的輸入
如果您知道要刪除最後一行,但不包含其他包含相似文本的行,或者您不知道將包含哪些文本,sed
是唯一合適的。
./hit_ratio.sh | sed '$d'
或者,用你的SQL腳本做些什麼。有時,打開set nocount on
語句可消除「行受影響」行。
這不是便攜式;並非所有頭(1)實現都具有此功能。 – tripleee