попробуйте awk
иtr
awk -F"[][]" '{print $2}' file
или
grep
grep -Po "(?<=\[).[0-9].*?(?=\])" file
или
вpython
#!/bin/python
import re
str = open('file.txt', 'r').read()
m = re.search(r"\[([A-Za-z0-9_]+)\]", str)
print m.group(1)
Для этого вам не нужны регулярные выражения, исходя из вашего описания того, что вы пытаетесь сделать. Вы можете просто использовать Python str.startswith
для фильтрации строк, которые вам не нужны, а затем метод str.split
, чтобы получить интересующую вас часть, передав значение конструктору int()
, чтобы привести строку до целого числа:
for line in open('abc.txt').readlines():
if line.startswith('width:'):
number = int(line.split()[-1])
print(number)