2017-10-04 2 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 "|/@&| $ 2〜/ [[:digit:]]/{print $ 2} '' – Inian

+0

はい@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 
    

出力は、3つのすべてのために同じである:

7548757 
関連する問題