我有以下输出:
Name Stmts Miss Cover Missing
---------------------------------------------------------------
src/global_information.py 8 1 88% 6
src/settings.py 38 0 100%
src/storage_backends.py 4 4 0% 1-5
src/urls.py 8 0 100%
users/admin.py 1 0 100%
users/apps.py 3 3 0% 1-5
users/forms.py 5 0 100%
users/models.py 1 0 100%
users/tests/tests_views_urls.py 5 0 100%
users/urls.py 5 0 100%
users/views.py 1 1 0% 1
---------------------------------------------------------------
TOTAL 79 9 89%
我需要得到TOTAL百分比,即89%。我尝试以下两个正则表达式:
TOTAL\s+\d+\s+\d+\s+\d+\%
和
(?<=TOTAL\s).*
我可以获得正确的行,但不知道如何提取它的百分比部分。这需要以正则表达式实现,因为我无权访问任何工具
由于
答案 0 :(得分:2)
答案 1 :(得分:1)
str=<<_
Name Stmts Miss Cover Missing
---------------------------------------------------------------
src/global_information.py 8 1 88% 6
src/settings.py 38 0 100%
src/storage_backends.py 4 4 0% 1-5
src/urls.py 8 0 100%
users/admin.py 1 0 100%
users/apps.py 3 3 0% 1-5
users/forms.py 5 0 100%
users/models.py 1 0 100%
users/tests/tests_views_urls.py 5 0 100%
users/urls.py 5 0 100%
users/views.py 1 1 0% 1
---------------------------------------------------------------
TOTAL 79 9 89%
_
str[/^TOTAL.*?\K\d+%/] #=> "89%
\K
意味着放弃到目前为止匹配的所有内容。需要?
中的非贪婪修饰符.*?
。如果没有它,\K
之前的匹配将以总百分比中的倒数第二位数结尾(此处为"8"
中的"89%"
,"3"
中的"1234%"
})。
答案 2 :(得分:0)
awk '/TOTAL/{ print $4}' <INPUT_FILE>