Мне нужно рассчитать размер удаленного файла на пользователя из команды lsof
в bash. Но есть несколько строк, в которых третий столбец является пустым, что приводит к проблемам суммирования значений.
Например, на прикрепленном изображении мне нужно показать общий размер по каждому типу пользователя для удаленных файлов, теперь из-за нескольких пустых ячеек в в третьем столбце количество столбцов не соответствует действительности, и, следовательно, полученные значения также не верны. Я пытался использовать несколько вариантов, чтобы заменить пустые ячейки каким-то фиктивным текстом, но это не очень хорошо работает, поэтому нужно предложить решение для этой проблемы, а также любую команду, чтобы показать результирующий размер в удобочитаемом формате?
Я пытался добавьте вывод по типу пользователя с помощью следующей команды
lsof|grep -i deleted| awk '{a[$5] +=$8} END{for (i in a) print i, a[$i]}'
Вышеуказанная команда не дала правильных результатов, поэтому я попытался из приведенной ниже команды заменить пустые ячейки фиктивным текстом
lsof|grep -i deleted| awk '!$3{$3="NA"}{a[$5] +=$8} END{for (i in a) print i, a[$i]}'
То не работает, поэтому я попытался использовать, если условие
lsof|grep -i deleted| awk '{if($3 =="") $3="NA"; a[$5] +=$8} END{for (i in a) print i, a[$i]}'