2017-08-24 25 views
0

我正在通過文本文件搜索特定的字符串,並且正在查找一個數字,該字符串是該字符串下面的一行。所以下面的例子使其更清晰。Shell capture substring下面是搜索到的字符串

這是文本文件

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並捕獲數量上它下面32960.

行什麼是最好的方法呢?我正在考慮搜索FILE1,然後在「實例提取」之後搜索第一個實例,然後捕獲該數字,這是最佳解決方案嗎?

非常感謝任何幫助,您可以提供

回答

0

一個快速和骯髒的解決方案:

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

grep -A1拉匹配線和下一個進入標準輸出,然後用sed將拉動數(而且刪除不因末匹配到;tx;d;:x任何行)可以使用awk

1

沒有getline()

awk 'p==1 {p=0; print $NF } /FILE1/ {p=1}' inputfile