У меня была та же проблема (12.04)
Использовал Центр программного обеспечения для установки: libreoffice-java-common
Это исправило это для меня.
Если вы хотите извлечь неконтегрированные значения атрибута SEM, вы можете сделать это, используя grep в режиме PCRE:
$ grep -Po '(?<=\[SEM=)[^()]*?(?=\])' file
50
'times'
4
или perl сам
$ perl -lne 'print $1 if /(?<=\[SEM=)([^()]*?)(?=\])/' file
50
'times'
4
Оба подхода используют регулярные выражения.
Если вы хотите извлечь неконтегрированные значения атрибута SEM, вы можете сделать это, используя grep в режиме PCRE:
$ grep -Po '(?<=\[SEM=)[^()]*?(?=\])' file
50
'times'
4
или perl сам
$ perl -lne 'print $1 if /(?<=\[SEM=)([^()]*?)(?=\])/' file
50
'times'
4
Оба подхода используют регулярные выражения.
Если вы хотите извлечь неконтегрированные значения атрибута SEM, вы можете сделать это, используя grep в режиме PCRE:
$ grep -Po '(?<=\[SEM=)[^()]*?(?=\])' file
50
'times'
4
или perl сам
$ perl -lne 'print $1 if /(?<=\[SEM=)([^()]*?)(?=\])/' file
50
'times'
4
Оба подхода используют регулярные выражения.
С помощью нескольких команд модуля re мы можем скомпоновать скрипт Python:
#!/usr/bin/env python3
import sys,re
with open(sys.argv[1]) as fd:
for line in fd:
items = re.findall(r'SEM=[^(]+?\]',line)
for i in items:
tokens = filter( lambda x: x != 'SEM' and x, re.split('=|]',i) )
print("\n".join(tokens))
С вашим данным, который производит:
$ ./get_sem_vals.py ./input.txt
50
'times'
4
I также взял на себя ответственность за учет возможных множественных SEM значений в одной строке. Если мы изменим вашу вторую строку как
(NUM[SEM=(50, unknown, unknown)] (DIZAINE[SEM=50] cinquante, ATHING=[SEM=25]))
, скрипт выдает следующий вывод:
$ ./get_sem_vals.py ./input.txt
50
25
'times'
4
С помощью нескольких команд модуля re мы можем скомпоновать скрипт Python:
#!/usr/bin/env python3
import sys,re
with open(sys.argv[1]) as fd:
for line in fd:
items = re.findall(r'SEM=[^(]+?\]',line)
for i in items:
tokens = filter( lambda x: x != 'SEM' and x, re.split('=|]',i) )
print("\n".join(tokens))
С вашим данным, который производит:
$ ./get_sem_vals.py ./input.txt
50
'times'
4
I также взял на себя ответственность за учет возможных множественных SEM значений в одной строке. Если мы изменим вашу вторую строку как
(NUM[SEM=(50, unknown, unknown)] (DIZAINE[SEM=50] cinquante, ATHING=[SEM=25]))
, скрипт выдает следующий вывод:
$ ./get_sem_vals.py ./input.txt
50
25
'times'
4
С помощью нескольких команд модуля re мы можем скомпоновать скрипт Python:
#!/usr/bin/env python3
import sys,re
with open(sys.argv[1]) as fd:
for line in fd:
items = re.findall(r'SEM=[^(]+?\]',line)
for i in items:
tokens = filter( lambda x: x != 'SEM' and x, re.split('=|]',i) )
print("\n".join(tokens))
С вашим данным, который производит:
$ ./get_sem_vals.py ./input.txt
50
'times'
4
I также взял на себя ответственность за учет возможных множественных SEM значений в одной строке. Если мы изменим вашу вторую строку как
(NUM[SEM=(50, unknown, unknown)] (DIZAINE[SEM=50] cinquante, ATHING=[SEM=25]))
, скрипт выдает следующий вывод:
$ ./get_sem_vals.py ./input.txt
50
25
'times'
4