我只想删除包含查询中所选行数的行。我的意思是最后一行。请帮忙。
[root@machine-test scripts]# ./hit_ratio.sh
193830 432
185260 125
2 rows selected.
答案 0 :(得分:4)
如果您知道要删除最后一行,但不想删除包含类似文本的其他行,或者您不知道它将包含哪些文本,sed
是唯一合适的。
./hit_ratio.sh | sed '$d'
答案 1 :(得分:3)
如果你想要的只是根据模式删除一行,你不需要sed
的力量或awk
的超能力。您可以使用:
./hit_ratio.sh | grep -v ' rows selected.'
可以<{1}}和awk
进行,但这有点像试图用热核弹头杀死苍蝇:
sed
答案 2 :(得分:2)
或者,使用您的SQL脚本执行某些操作。有时,启用set nocount on
语句会消除“受影响的行”行。
答案 3 :(得分:1)
我的第一个建议是不要输出那行,在这里列出hit_ratio.sh也许可以修改它不输出那行
无论如何,如果您必须删除 最后一行,最简单的方法是使用head:
./hit_ratio.sh | head -n -1
使用-n和负数使头部打印除输入的最后N行之外的所有行
答案 4 :(得分:0)
使用head
获取文件的第一行N - 1
行,其中N是文件的长度(使用wc -l
计算)
head -n $(($(cat lipsum.log | wc -l) - 1)) lipsum.log
有效
答案 5 :(得分:0)
管道穿透
sed -e '/\w*[0-9]\+ rows\? selected/d'