2017-08-22 10 views
1

CFDシミュレーションからの出力残差ファイルがあります。ファイルはテキストで始まり、数値が表示されます。数値データは、反復ごとの異なる変数の反復および値の集合です。しかし、反復の各行の間にはテキストがあります。私は数値だけを読んでみたい。最終的に最後の反復の後に、私は欲しくないテキストをいくつか持っています。 "grep"や "awk"を使って、これをどのように達成できますか?数値データを抽出するためのAWK

Conjugate-Gradient solver did not converge ! 
Iteration  Continuity  X-momentum  Y-momentum  Z-momentum   Energy   Tke   Sdr Intermittency Heat Transfer 1 (W) Pinlet (Pa) T_outlet (K) twallFroide (K) surf_avg_q_crit (/s^2) Maximum tempfroide (K) Surface Average Helicity (/s) 
      1 1.851301e-09 1.213569e-07 2.692437e-09 4.273490e-10 1.888124e-03 3.166891e-07 5.527057e-06 1.418467e-23  -9.974981e+00 2.505598e+03 2.900000e+02 4.000053e+02   -1.627486e+06   4.000053e+02     9.216386e+03 

Conjugate-Gradient solver did not converge ! 
      2 1.506520e-09 6.493389e-08 1.170308e-08 1.013586e-08 3.910613e-04 1.808261e-08 1.438014e+00 8.318085e-08  -9.193516e+00 3.435342e+03 2.899868e+02 4.000056e+02   -3.203329e+05   4.000056e+02     1.100795e+04 

Conjugate-Gradient solver did not converge ! 
      3 1.525969e-09 3.735938e-08 6.075371e-09 5.903247e-09 1.463379e-04 1.838257e-08 8.408794e-01 4.541057e-08  -5.458547e+00 3.763758e+03 2.899876e+02 4.000063e+02   -8.800786e+04   4.000063e+02     1.215424e+04 
Iteration  Continuity  X-momentum  Y-momentum  Z-momentum   Energy   Tke   Sdr Intermittency Heat Transfer 1 (W) Pinlet (Pa) T_outlet (K) twallFroide (K) surf_avg_q_crit (/s^2) Maximum tempfroide (K) Surface Average Helicity (/s) 
      11 3.111921e-10 6.967732e-09 1.939856e-09 1.489035e-09 3.637339e-05 1.190901e-08 1.233295e-03 1.514342e-08  -3.424275e-01 -2.047953e+02 2.900011e+02 3.904010e+02   -5.810358e+05   3.905252e+02     1.336589e+04 

Conjugate-Gradient solver did not converge ! 
      12 2.750237e-10 6.604475e-09 1.869473e-09 1.402315e-09 2.681946e-05 1.108801e-08 5.955147e-04 2.128098e-08  -5.063177e-01 3.204832e+01 2.899994e+02 3.851287e+02   -6.980901e+05   3.853471e+02     1.349346e+04 

      1486 1.772877e-10 1.146380e-08 5.247957e-09 2.874375e-09 2.170361e-04 2.508185e-09 6.915671e-05 1.255282e-08  4.900716e+00 1.318869e+02 2.957356e+02 3.059026e+02   -2.345214e+06   3.087469e+02     1.762329e+04 
      1487 1.794266e-10 1.145211e-08 5.258921e-09 2.874134e-09 1.135887e-04 2.508012e-09 6.529728e-05 1.261970e-08  4.907054e+00 1.317913e+02 2.957361e+02 3.059022e+02   -2.518939e+06   3.087460e+02     1.762613e+04 
Temperature corrections limited on 7 cells in glue1 
Temperature corrections limited on 1 cells in glue2 

例としていくつかのデータをコピーしました。 iイタレーション1の前に何かを保存したくない、中間のテキストと最後の反復の後のテキスト。それはあなたの期待出力が何であるか本当に明確ではないのですが、あなたは(可能な空白の後)の数値で始まる行のみを抽出したい場合は、grepがどうなる

おかげ

Bineet

+0

あなたのポストビットをきれいにしてくださいもらえますか?正確な入力と目的の出力は何ですか? –

+0

@Bineet、あなたの問題を解決する答えが得られたらどうすればよいかについてはhttps://stackoverflow.com/help/someone-answersを参照してください。 – Sundeep

答えて

1

を提案して下さいちょうど良い。あなたのサンプル入力の場合

$ grep -P '^\s*\d+' sim 
      1 1.851301e-09 1.213569e-07 2.692437e-09 4.273490e-10 1.888124e-03 3.166891e-07 5.527057e-06 1.418467e-23  -9.974981e+00 2.505598e+03 2.900000e+02 4.000053e+02   -1.627486e+06   4.000053e+02     9.216386e+03 
      2 1.506520e-09 6.493389e-08 1.170308e-08 1.013586e-08 3.910613e-04 1.808261e-08 1.438014e+00 8.318085e-08  -9.193516e+00 3.435342e+03 2.899868e+02 4.000056e+02   -3.203329e+05   4.000056e+02     1.100795e+04 
      3 1.525969e-09 3.735938e-08 6.075371e-09 5.903247e-09 1.463379e-04 1.838257e-08 8.408794e-01 4.541057e-08  -5.458547e+00 3.763758e+03 2.899876e+02 4.000063e+02   -8.800786e+04   4.000063e+02     1.215424e+04 
      11 3.111921e-10 6.967732e-09 1.939856e-09 1.489035e-09 3.637339e-05 1.190901e-08 1.233295e-03 1.514342e-08  -3.424275e-01 -2.047953e+02 2.900011e+02 3.904010e+02   -5.810358e+05   3.905252e+02     1.336589e+04 
      12 2.750237e-10 6.604475e-09 1.869473e-09 1.402315e-09 2.681946e-05 1.108801e-08 5.955147e-04 2.128098e-08  -5.063177e-01 3.204832e+01 2.899994e+02 3.851287e+02   -6.980901e+05   3.853471e+02     1.349346e+04 
      1486 1.772877e-10 1.146380e-08 5.247957e-09 2.874375e-09 2.170361e-04 2.508185e-09 6.915671e-05 1.255282e-08  4.900716e+00 1.318869e+02 2.957356e+02 3.059026e+02   -2.345214e+06   3.087469e+02     1.762329e+04 
      1487 1.794266e-10 1.145211e-08 5.258921e-09 2.874134e-09 1.135887e-04 2.508012e-09 6.529728e-05 1.261970e-08  4.907054e+00 1.317913e+02 2.957361e+02 3.059022e+02   -2.518939e+06   3.087460e+02     1.762613e+04 

-P\s*は、少なくとも一桁\d+を先行することができるゼロ個以上の空白文字を可能にし、先頭を整列するPCREモード、^アンカー試合を活性化させる。)

+0

非常にうまく動作します。 – Bineet

+0

それを聞いてうれしいです。 – randomir

+0

@Bineet、答えの1つがあなたの問題に対する最良の解決策だと思うなら、その答えを[accepting](https://stackoverflow.com/help/someone-answers)と考えてください。それは解決された問題を記しているので、コミュニティを助ける。 – randomir

1

ショートawkのアプローチ:

awk '$1~/^[0-9]+/' file 

出力:

 1 1.851301e-09 1.213569e-07 2.692437e-09 4.273490e-10 1.888124e-03 3.166891e-07 5.527057e-06 1.418467e-23  -9.974981e+00 2.505598e+03 2.900000e+02 4.000053e+02   -1.627486e+06   4.000053e+02     9.216386e+03 
    2 1.506520e-09 6.493389e-08 1.170308e-08 1.013586e-08 3.910613e-04 1.808261e-08 1.438014e+00 8.318085e-08  -9.193516e+00 3.435342e+03 2.899868e+02 4.000056e+02   -3.203329e+05   4.000056e+02     1.100795e+04 
    3 1.525969e-09 3.735938e-08 6.075371e-09 5.903247e-09 1.463379e-04 1.838257e-08 8.408794e-01 4.541057e-08  -5.458547e+00 3.763758e+03 2.899876e+02 4.000063e+02   -8.800786e+04   4.000063e+02     1.215424e+04 
    11 3.111921e-10 6.967732e-09 1.939856e-09 1.489035e-09 3.637339e-05 1.190901e-08 1.233295e-03 1.514342e-08  -3.424275e-01 -2.047953e+02 2.900011e+02 3.904010e+02   -5.810358e+05   3.905252e+02     1.336589e+04 
    12 2.750237e-10 6.604475e-09 1.869473e-09 1.402315e-09 2.681946e-05 1.108801e-08 5.955147e-04 2.128098e-08  -5.063177e-01 3.204832e+01 2.899994e+02 3.851287e+02   -6.980901e+05   3.853471e+02     1.349346e+04 
    1486 1.772877e-10 1.146380e-08 5.247957e-09 2.874375e-09 2.170361e-04 2.508185e-09 6.915671e-05 1.255282e-08  4.900716e+00 1.318869e+02 2.957356e+02 3.059026e+02   -2.345214e+06   3.087469e+02     1.762329e+04 
    1487 1.794266e-10 1.145211e-08 5.258921e-09 2.874134e-09 1.135887e-04 2.508012e-09 6.529728e-05 1.261970e-08  4.907054e+00 1.317913e+02 2.957361e+02 3.059022e+02   -2.518939e+06   3.087460e+02     1.762613e+04 
+0

完璧に動作します。ありがとう – Bineet

+0

@ビネット、ようこそ – RomanPerekhrest

関連する問題