2016-05-31 10 views
0

以下に示すように、ファイルに実際に大きなファイルであるコンテンツがあります。できるだけ早くlastAccessed値(例えば、1464682814617)〜コマンドライン。サイドノートではいくつかの条件(コマンドライン)に応じてファイルから特定の行を抽出する

"url":"https://www.google.co.in/","title":"Google","lastAccessed":1464675219253,"hidden":false,"" 
"url":"https://www.google.com/intl/en/mail/help/about.html","title":"Gmail - Free Storage and Email from Google","persist":true,"lastAccessed":1464679910117,"hidden":false 
"url":"https://www.facebook.com/","title":"Facebook - Log In or Sign Up","persist":true,"lastAccessed":1464682240507,"hidden":false 
"url":"https://www.linkedin.com/","title":"World’s Largest Professional Network | LinkedIn","lastAccessed":1464682814617,"hidden":false,"" 
"url":"http://stackoverflow.com/","title":"Stack Overflow","persist":true,"lastAccessed":1464682191245,"hidden":false 
"url":"http://www.indeed.co.in/?r=us","title":"Job Search India | one search. all jobs. Indeed","docIdentifier":5,"persist":true,"lastAccessed":1464674503732 
"url":"https://www.google.com/intl/en/mail/help/about.html","title":"Gmail - Free Storage and Email from Google","persist":true,"lastAccessed":1464674739300,"hidden":false 
"url":"http://stackoverflow.com/","title":"Stack Overflow","persist":true,"lastAccessed":1464674774653,"hidden":false 

私は、ノード・アプリケーションに取り組んでいます。コマンドラインを使って何かをするのがもっと速くなるか、それをjson objに変換して正しいレコードを探しますか?


アドバイスはありがとうございます。アドバンスで感謝します。 gawkの付

答えて

2

awk '{if (gensub(/.*lastAccessed":([0-9]*).*/,"\\1","g",$0) > 1464682814617) {print}}' File 

gensubが文字列"lastAccessed":後番号を抽出し、値が限界値よりも大きい場合に制限値と印刷行とそれを比較します。

awksed利用できない場合:

while read line; do 
    LASTA=$(echo "$line"| grep -o '"lastAccessed":[0-9]*' | cut -d: -f2) ; 
    if [ "$LASTA" -gt 1464682814617 ] ; then 
     echo $line 
    fi 
done < File 
+0

が、インストールするには、外部のソフトウェアはgensubで、外部ソフトウェア –

+0

でこれを行うためのコマンドが存在している 'gensub'はgawk''で組み込み関数、ではありません外部ツール。 – 7171u

+0

はい私たちは最初にgawkをインストールしなければなりません。gensubを使うことができます –

関連する問題