Удаление строки на основе критериев - PullRequest
0 голосов
/ 13 сентября 2011

Я просто хочу удалить строку, содержащую количество выбранных строк в запросе.Я имею в виду тот, что в последней строке.пожалуйста, помогите.

[root@machine-test scripts]# ./hit_ratio.sh 
     193830           432           
     185260           125

2 rows selected.

Ответы [ 6 ]

4 голосов
/ 13 сентября 2011

Если вы знаете, что хотите удалить последнюю строку, но не другие строки, содержащие аналогичный текст, или вы не знаете, какой текст он будет содержать, sed является уникально подходящим.

./hit_ratio.sh | sed '$d' 
3 голосов
/ 13 сентября 2011

Вам не нужна сила 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
2 голосов
/ 13 сентября 2011

В качестве альтернативы, сделайте что-нибудь со своим скриптом SQL. Иногда включение оператора set nocount on исключает строку «затронутые строки».

1 голос
/ 13 сентября 2011

Моя первая рекомендация - не выводить эту строку, список hit_ratio.sh здесь, может быть, ее можно изменить, чтобы не выводить эту строку

В любом случае, если вам нужно удалить только , в последней строке проще всего использовать head:

./hit_ratio.sh  | head -n -1

Использование -n и отрицательного числа заставляет голову печатать все, кроме последних N строк ввода

0 голосов
/ 13 сентября 2011

Труба через

sed -e '/\w*[0-9]\+ rows\? selected/d'
0 голосов
/ 13 сентября 2011

Используйте head, чтобы получить первые N - 1 строки вашего файла, где N - длина файла (рассчитывается с помощью wc -l)

head -n $(($(cat lipsum.log | wc -l) - 1)) lipsum.log работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...