2014-11-27 4 views
0

У меня есть набор команд в сценарии bash, например, запуск запроса в impala.extract/split from string в bash

#! /bin/sh 
RESULT=`impala-shell -q "select count(*) from testable"` 

Результат сценария оболочки.

Starting Impala Shell without Kerberos authentication 
Connected to mycomp.cool-cluster.com:21000 
Server version: impalad version 2.0.0-cdh5 RELEASE (build 12323323) 
Query: select count(*) from enriched_call 
Fetched 1 row(s) in 0.62s 
+----------+ | count(*) | +----------+ | 234343 | +----------+ 

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

Если я пытаюсь устранить не числовой Воулс, номера из версии также входят. Я хочу разделить, скажем, '|' и получить значение 234343

ответ

0
RESULT=$(impala-shell -q "..." | tail -n 1 | grep -o '[[:digit:]]\+') 

или

RESULT=$(impala-shell -q "..." | sed -n '$s/[^[:digit:]]//gp') 
2

Попробуйте сделать это:

RESULT=$(
    impala-shell -q "select count(*) from testable" | 
     awk -F'|' 'END{print $4}' 
)