Исследуемые входные данные можно рассматривать как матрицу или двумерный -массив. Теперь, если мы подойдем к проблеме с этой точки зрения, есть несколько вычислительных инструментов, которые можно использовать для манипулирования матрицами. В частности, это позволяет модуль Python numpy
. Таким образом, мы могли бы использовать две вещи -функцию loadtxt()
и diagonal()
для извлечения нужных данных:
$ python -c 'import sys,numpy;a=numpy.loadtxt(sys.argv[1],dtype=int,delimiter=",");print( a.diagonal() )' input.txt
[1 7 3 9 5]
Теперь это большая часть проделанной работы. Чтобы сделать вывод красивым, нам просто нужно преобразовать полученные данные в строки и создать строку, разделенную пробелом -, из отдельных строк. Вот так:
$ python -c 'import sys,numpy;a=numpy.loadtxt(sys.argv[1],delimiter=",");print(" ".join( [ str(int(i)) for i in a.diagonal() ]))' input.txt
1 7 3 9 5
Конечно, все это не обязательно делать одним -вкладышем. Для удобочитаемости мы можем сделать небольшой скрипт, который также позволит нам обрабатывать все имена файлов, указанные в качестве аргументов в команде -строка:
#!/usr/bin/env python
import sys
import numpy as np
for filename in sys.argv[1:]:
data=np.loadtxt(filename,delimiter=",")
diag = data.diagonal()
result_string = " ".join( [ str(int(i)) for i in diag ] )
print(result_string)
Can I do anything further to protect my system, and if so, what should my next steps be?
Вы можете сделать что-то еще, чтобы защитить свою систему :вы можете отключить SMT (гиперпоточность ). Обычно это возможно в настройках прошивки вашей системы.
Do I need to take action regarding my Microarchitectural Data Sampling (MDS) status?
Это зависит от того, для чего вы используете свою систему. Как правило, если вы запускаете только доверенные приложения с доверенным содержимым, вам не нужно предпринимать дальнейших действий. (До сих пор нет единого мнения относительно уязвимости веб-браузеров к MDS с SMT. )Если вы запускаете виртуальные машины или контейнеры с непроверенным содержимым, вы можете подвергаться риску.