Слияние столбцов из двух отдельных файлов

bonnie ++ приходит на ум:

Так, в зависимости от аппаратной конфигурации Вашего поля:

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB

Пример:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000

Это должно дать Вашему устройству хороший стресс-тест. Можно настроить его также.

Отметьте с SSD, когда сбойный блок происходит, это может получить remap'd автоматически аппаратными средствами диска, в зависимости от диска, с которым Вы работаете. Кроме того, утяжеленный тест разрушает продолжительность жизни записи Вашего SSD. Так, используйте по своему собственному усмотрению.

Править:

Добавление примечания об отказах SSD, так как было указано, что Bonnie ++ стресс-тесты, но не отслеживает ошибки. Путем SSD "повторно отображается, сбойные блоки" отличается от способа, которым жесткие диски делают переотображение. То, как это идет об этом, зависит полностью, на котором выпускаются под брендом/делают/моделируют SSD, который Вы имеете:

  • Дешевый SSD просто перестал работать, потому что у них нет резервной мощности для переотображения, или потому что у них нет средств разделения неудавшихся блоков флэш-памяти. Они просто зависнут или пойдут офлайн и не возвратятся онлайн.
  • SSD среднего уровня без резервной мощности может генерировать предупреждения Smartd или возможно даже генерировать ошибки блочного устройства уровня ОС, когда неудавшийся блок обнаруживается. Однако, когда сбой происходит, зарегистрированный размер SSD изменится. Это может привести к ошибке и устройству, выводимому из эксплуатации ОС, или это может привести к самому устройству, зависающему и бывшему должному быть вытащенным и повторно вставленным для него, чтобы быть распознанным снова. На потворении регистрацию будет уменьшен доступный размер блока устройства.
  • SSD высокого класса с резервной мощностью повторно отобразит сбойные блоки негласно и может генерировать предупреждения/предупреждения уровня ОС. Когда резервная мощность закончится, устройство, вероятно, приведет к сбою вроде Среднего диапазона SSD.

Когда SSD изменяет размер себя из-за изолируемых сбойных блоков, Вы, возможно, должны были бы сделать следующее для восстановления диска, если встроенное микропрограммное обеспечение диска автоматически не делает надлежащих обновлений автоматически:

http://communities.intel.com/message/145676

Если инструмент стресс-теста и регистрации ошибок не специально предназначен с SSD, в памяти, Вы просто израсходовали продолжительность жизни устройства.

Править:

На основе информации из ответов выше, предложите или замену кабеля с лучшим или замену диска (Замена RMA/Warrantee), поскольку такая ошибка уровня файловой системы ОС не нормальна.

Кроме того, если Ваша поддержка дисков это, можно увеличить сумму пространства, зарезервированного для ошибок из-за неправильного обращения:

http://www.thomas-krenn.com/en/wiki/SSD_Over-provisioning_using_hdparm

9
22.07.2014, 01:27
2 ответа

Попробуйте так:

$ awk 'FNR==NR{a[FNR]=$2;next};{$NF=a[FNR]};1' file2 file1
A 23 8 0
A 63 9 6
B 45 3 5
4
27.01.2020, 20:05

Для этого есть специальный инструмент: вставить . Она объединяет каждую полную строку из первого файла с соответствующей строкой из второго; вы можете удалить ненужные столбцы до или после. Например, предполагая, что ваши столбцы разделены табуляциями:

paste file1.txt file2.txt | cut -f 1,2,3,6

Вот способ предварительной фильтрации обоих файлов, который полагается на подстановку процесса ksh/bash/zsh.

paste <(<file1.txt sed 's/[[:space:]][[:space:]]*[^[:space:]]*$//') \
      <(<file1.txt sed 's/^[^[:space:]]*[[:space:]][[:space:]]*//')

Awk в первую очередь предназначен для обработки одного файла за раз, но вы можете вызвать getline для параллельного чтения из другого файла.

awk '
  BEGIN {file2=ARGV[2]; ARGV[2]="";}
  {$0 = $0 ORS getline(); print $1, $2, $3, $6;}
' file1.txt file2.txt

До сих пор я предполагал, что вы хотите сопоставить строку 1 файла 1 со строкой 1 файла 2, строку 2 файла 1 со строкой 2 файла 2 и т.д. Если вы хотите, чтобы содержимое колонки совпадало, то это совсем другое дело. join выполнит эту работу при условии, что столбец, которому вы хотите соответствовать, отсортирован.

15
27.01.2020, 20:05

Теги

Похожие вопросы