2017-10-04 551 views
1

我试图获取mysql表中的行数,并试图将数据计数转换为本地计算机上的文本文件。将sqoop的输出导出到本地的文本文件中

我使用下面的命令:

sqoop-eval --connect jdbc:mysql:url -username -password \ 
      --query"select count(*) from test" >> data.txt 

我得到以下输出:

------------------------ 
| COUNT    | 
------------------------ 
| 7548757    | 
------------------------ 

我在输出文件中寻找刚刚数量为:

7548757 

没有什么比计数。我怎样才能实现它?

+0

工作的呢? 'sqoop-eval --connect jdbc:mysql:url -username -password --query“select count(*)from test”| awk'/ \\ |/&& $ 2〜/ [[:digit:]]/{print $ 2}'' – Inian

+0

yes @Inian它工作正常 – sri

回答

1

的输出数据并不复杂,所以有几十种方法可以做到这一点,这里有几个:

  1. 使用tr

    sqoop-eval --connect jdbc:mysql:url -username -password \ 
          --query"select count(*) from test" | 
    { tr -cd '[:digit:]' ; echo ; } >> data.txt 
    
  2. grep

    sqoop-eval --connect jdbc:mysql:url -username -password \ 
          --query"select count(*) from test" | 
    grep -o '[[:digit:]]*' >> data.txt 
    
  3. numgrep

    sqoop-eval --connect jdbc:mysql:url -username -password \ 
          --query"select count(*) from test" | 
    numgrep -l /0../ >> data.txt 
    

输出是所有三个相同的:

7548757