2017-10-04 159 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