2017-08-24 10 views
0

特定の文字列のテキストファイルを検索していて、この文字列の下にある行番号を探しています。下の例ではそれを明確にしています。検索された部分文字列の下の行であるシェルキャプチャ部分文字列

これは私が文字列FILE1を検索し、それがベストです何32960.

下の行に番号をキャプチャしたいテキストファイル、テキストファイルで

2017-08-14 14:04:53,836 INFO - XML File FILE1 is created in /path/to/file 
2017-08-14 14:10:04,696 INFO - #Instances Extracted: 32960 
2017-08-14 14:17:52,248 INFO - XML File FILE2 is created in /path/to/file 
2017-08-14 14:41:33,720 INFO - #Instances Extracted: 119534 

の内容ですこれのための方法?私はFILE1の検索を検討していて、この「インスタンス抽出」の後の最初のインスタンスを検索し、それ以降の番号を取得しましたが、これが最善の解決策ですか?あなたは

答えて

0

は、迅速かつ汚いソリューションを提供することができます任意の助けに

感謝:

cat file.txt | grep -A1 FILE1 | sed "s/.*Instances Extracted: \([0-9]*\).*/\1/;tx;d;:x" 

grep -A1がマッチラインとstdoutに次の1、及びを引っ張る、その後数を引っ張ってくるのsedアウトgetline()なしあなたがawkを使用することができます

1

(そして最後に;tx;d;:xが原因で一致しないすべての行を削除):

awk 'p==1 {p=0; print $NF } /FILE1/ {p=1}' inputfile 
関連する問題