2017-05-11 18 views
0

私は以下のテキストファイルを持っています。Sedは条件に置き換えます

2017-03-01 10:57:50,892 [Thread-977] limits.compiler : ERROR - Error in formula Undefined_CountryDom 
cannot get field LOCKS_CountryDom, String, CountryDom, belongs to Header, scalar (dynamic index: 172) 
limits.compiler.LimitsVariablesException: cannot get field LOCKS_CountryDom, String, CountryDom, belongs to Header, scalar (dynamic index: 172) 
     at limits.compiler.ExpressionHandler.evaluateBoolean(ExpressionHandler.java:170) 
     at limits.compiler.ExpressionHandler.getBoolean(ExpressionHandler.java:266) 
2017-03-01 10:57:50,700 [Thread-231] console : ERROR - at limits.compiler.ExpressionHandler.getString(ExpressionHandler.java:700) 
2017-03-01 10:57:50,892 [Thread-977] console : ERROR - at limits.compiler.compliance.ComplianceCheckFactoryImpl.compileDefaultMessageExpression(ComplianceCheckFactoryImpl.java:107) 
2017-03-01 10:57:50,892 [Thread-564] console : ERROR - at limits.compiler.compliance.ComplianceCheckFactoryImpl.createOverflow(ComplianceCheckFactoryImpl.java:231) 
2017-03-01 10:57:50,893 [Thread-977] console : ERROR - at limits.compiler.compliance.ComplianceCheckFactoryImpl.evaluateTickLockCombinations(ComplianceCheckFactoryImpl.java:498) 
2017-03-01 10:57:50,893 [Thread-977] console : ERROR - at limits.engine.stream.TickWriterImpl.doMLCOperations(TickWriterImpl.java:2488) 

Iは、時間と- at有する線が上記時間なし行と同様なされるであろうように2017-03-01 10:57:50,700 [Thread-231] console : ERROR -の除去を必要とします。私はそれをどのように行うことができます

2017-03-01 10:57:50,892 [Thread-977] limits.compiler : ERROR - Error in formula Undefined_CountryDom 
cannot get field LOCKS_CountryDom, String, CountryDom, belongs to Header, scalar (dynamic index: 172) 
limits.compiler.LimitsVariablesException: cannot get field LOCKS_CountryDom, String, CountryDom, belongs to Header, scalar (dynamic index: 172) 
     at limits.compiler.ExpressionHandler.evaluateBoolean(ExpressionHandler.java:170) 
     at limits.compiler.ExpressionHandler.getBoolean(ExpressionHandler.java:266) 
     at limits.compiler.ExpressionHandler.getString(ExpressionHandler.java:700) 
     at limits.compiler.compliance.ComplianceCheckFactoryImpl.compileDefaultMessageExpression(ComplianceCheckFactoryImpl.java:107) 
     at limits.compiler.compliance.ComplianceCheckFactoryImpl.createOverflow(ComplianceCheckFactoryImpl.java:231) 
     at limits.compiler.compliance.ComplianceCheckFactoryImpl.evaluateTickLockCombinations(ComplianceCheckFactoryImpl.java:498) 
     at limits.engine.stream.TickWriterImpl.doMLCOperations(TickWriterImpl.java:2488) 

結果は次のようなものでなければなりませんか?

+2

あなたは本当にこれをしたくありません....元の入力では、例外は異なるスレッドから来ましたが、変更を行った場合、例外はすべて「Thread-977」から得られます。間違った情報 – Kent

+0

ようこそStackOverflowへ。 [ツアー]を取って、良い質問をすることを学んでください。stackoverflow.com/help/how-to-ask、 [mcve]を作ってください。 あなたがそれをしたいと思っているとしたら、どのように試しましたか? – Yunnosch

答えて

0

sedの有名な置換sファンクション
s/regex/pattern/内で正規表現をグループ化できます。
この場合、2つのグループ\(a_regex_group\)を使用し、1つのパターンを印刷します。第2の\2です。

​​

これはダッシュと2つの空白-\s\sを含む任意の文字.*続く数字^[0-9]*で始まり、先頭タブ\tで残り\2を残してすべてをチョップ。

+0

'/ g'は実際にはグループ化とは関係ありません。 – ilkkachu

+0

正確に!あなたはそれを得た;)よくやった!だから私はグローバルな 'g'代入関数' s/regex/pattern/g' **と** group(s) '\(a_regex_group \)'を書いたのです。役に立つヒントは大歓迎です。 '/ g'だけは' g 'しか存在しませんが、すでにチェックアウトしているので、私はすでにそれを述べています;) –

+0

私の主張は、 'g'、' s/this \ \)/ \ 1/'はうまく動作します。 – ilkkachu

関連する問題