На этом форуме есть статья об отключении монитора. Эта статья идет дальше и обсуждает опцию vbetool
.
# vbetool dpms off
Эта команда отключает монитор независимо от того, запущен X или нет. Итак, это почти тот ответ, который я искал. Теперь позвольте мне объяснить, что почти.
Кажется, это помогает:
$ sed -E 's/^([A-Z0-9]*).*(phNAME)'"'"': '"'"'([^'"'"']*).*/\1 \3/' input
ENSG00000268674 Strong inhibition of secretion
ENSG00000215268 Dynamic changes
ENSG00000130538 Intracellular retention of SH4(YES)-mCherry
Решение:
perl -lane 'print "$F[0] $_" for /'\''phNAME'\'': '\''([^'\'']+)/g' input.txt
Вывод:(на основе вашего опубликованного входного файла)
ENSG00000268674 Dynamic changes
ENSG00000268674 Strong inhibition of secretion
ENSG00000215268 Dynamic changes
ENSG00000130538 Intracellular retention of SH4(YES)-mCherry
Пояснение:
Подробное объяснение будет предоставлено по запросу.
По моему опыту, perl
часто является наиболее подходящим инструментом для такого рода задач.
Код выглядит довольно беспорядочно из-за '\''
, который является просто экранированным '
.
Рекомендация:
Если можете, избегайте возиться с данными json
и анализируйте их с помощью jq
, как уже было разумно предложено.
Другие решения подходят, если у вас всегда один и тот же формат и вы хотите извлечь только это единственное значение.
Если вам нужно больше гибкости для получения других данных, вы должны использовать формат данных json
.
Решение Python:
import csv, demjson
with open('test') as csvfile:
reader = csv.reader(csvfile, delimiter=' ', quotechar='"')
for row in reader:
data = demjson.decode(row[1])
for d in data:
for pd in d['phenodata']:
for pt in pd['phenotypes']:
phname = pt['phNAME']
print('%s %s' % (row[0],phname))
Выход:
ENSG00000268674 Dynamic changes
ENSG00000268674 Strong inhibition of secretion
ENSG00000215268 Dynamic changes
ENSG00000130538 Intracellular retention of SH4(YES)-mCherry
Поскольку ваша строка json
недействительна, мы не можем использовать модуль json
.
У вас должен быть установлен модуль demjson
:
# python3:
pip3 install demjson
# python2:
pip install demjson