Python 按行计算一个大文件中两个字符之间的总字节数,这两个字符与某些规则相匹配

Python 按行计算一个大文件中两个字符之间的总字节数,这两个字符与某些规则相匹配,python,linux,bash,shell,unix,Python,Linux,Bash,Shell,Unix,我有这样一个日志文件: 2013-07-20 08:48:14-0400 [MODE LOG] Rec:'#A=1887283,FIG=18882734772,VA=772663777,T=333.4#\r\n' 2013-07-20 08:52:34-0400 [MODE LOG] Rec:'#A=1889288,FIG=18882734772,VA=772663777,T=334.2#\r\n' 2013-07-20 08:55:27-0400 [MODE LOG]

我有这样一个日志文件:

    2013-07-20 08:48:14-0400 [MODE LOG] Rec:'#A=1887283,FIG=18882734772,VA=772663777,T=333.4#\r\n'
    2013-07-20 08:52:34-0400 [MODE LOG] Rec:'#A=1889288,FIG=18882734772,VA=772663777,T=334.2#\r\n'
    2013-07-20 08:55:27-0400 [MODE LOG] Rec:'#A=1887283,FIG=18882732730,VA=772663777,T=335.0#\r\n'
    2013-07-20 08:58:11-0400 [MODE LOG] Rec:'#A=1887283,FIG=18882734772,VA=772663777,T=335.4#\r\n'
    2013-07-20 08:48:14-0400 [MODE LOG] Tas:'#STOPPED#\r\n'
与:

我可以从7月份获得A=1887283记录的字节

但我确实需要只从“”之间的字符串中获取总字节,例如:'#A=1887283,FIG=18882734772,VA=772663777,T=335.4.\r\n'


我怎样才能以最好的方式做到这一点?我可以只使用unix工具或需要脚本语言吗?谢谢。

将您的命令更改为此

grep Rec STOM.log | grep 1887283 | grep 2013-07 | grep -oh "'.*'" | wc -c
输出

165

'.*
是一个正则表达式,它将匹配
'
'

之间的所有字符,只提取所需的数据

cat file |awk -F: '{ print $2 }'

可以使用bash按如下方式执行此操作:

#!/bin/bash
while read str; do
found=''
regex="#A=(.*),F" # <#A= start string and  ,F end string>
[[ $str =~ $regex ]] && found="${BASH_REMATCH[1]}"
echo $found
done < input.txt
#/bin/bash
读str时;做
找到=“”
regex=“#A=(*),F”#
[[$str=~$regex]]&&found=“${BASH\u重新匹配[1]}”
找到echo$
完成
其中
input.txt
是日志文件

#!/bin/bash
while read str; do
found=''
regex="#A=(.*),F" # <#A= start string and  ,F end string>
[[ $str =~ $regex ]] && found="${BASH_REMATCH[1]}"
echo $found
done < input.txt