我正在搜索特定字符串的文本文件,并且正在查找一个数字,该数字是此字符串下面的一行。下面举一个例子来说明它。
这是文本文件的内容
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,然后在" Instances Extracted"之后搜索第一个实例。并在此之后捕获数字,这是最好的解决方案吗?
非常感谢您提供的任何帮助
答案 0 :(得分:1)
您可以使用awk
而不getline()
:
awk 'p==1 {p=0; print $NF } /FILE1/ {p=1}' inputfile
答案 1 :(得分:0)
快速而肮脏的解决方案:
cat file.txt | grep -A1 FILE1 | sed "s/.*Instances Extracted: \([0-9]*\).*/\1/;tx;d;:x"
grep -A1
将匹配的行和下一行拉入标准输出,然后sed将数字拉出(并删除由于;tx;d;:x
而不匹配的所有行结束)