Поскольку базовый формат CSV предполагает запятую ,
в качестве разделителя полей, используйте следующий подход GNU sed :
sed -e '1iNAME,StartTime,TotalElapsedTime,Pool,ThreadsReached' -e 's/[^=]*="\([^"]*\)"/\1,/g; s/,$//g' file
Вывод:
NAME,StartTime,TotalElapsedTime,Pool,ThreadsReached
MARK,14:11:26.710583,0,10,0
MARK,14:11:26.710583,0,10,0
1i
- вставляет строку header перед первой строкой файла
s/[^=]*="\([^"]*\)"/\1,/g
- извлечение всех значений атрибутов
Как было предложено в более раннем комментарии, начните «отладку» с dmesg , а не копайтесь в данных SMART. Очень вероятно, что вы получите подсказки там (SATA/SAS/SCSI/все, что вы используете, ошибки шины или ошибки чтения/записи ). Он также сообщит вам, какое устройство / раздел неисправно.
Как предполагалось ранее, проблема может быть «мягкой» проблемой, такой как нечисто размонтированная файловая система (, т.е. из-за сбоя питания ), или это может быть аппаратная проблема, например, умирающий или неисправный жесткий диск/твердотельный накопитель. dmesg покажет подсказки в обоих случаях.