Некоторые мысли:
Если у вас уже есть awk в командной строке, вам не нужен grep.Таким образом, вы можете сделать это:
mount | awk '/\/dev\/sd/ {print NR, $1, $3}'
smartctl -a /dev/sdb | awk '/Device:/ {print $2}'
Если вы хотите создать одну строку вывода для каждого устройства, вы можете направить вывод вашей первой командной строки в цикл, а затем запустить smartctl внутри цикла,например:
mount | awk '/\/dev\/sd/ {print NR, $1, $3}' | while read nr dev mntpt; do
echo -e "$nr\t$dev\t$mntpt\t$(smartctl -a $dev | awk '/Device:/ {print $2}')"
done
Флаг -e
для эха необходим, чтобы он распознал \t
как символ табуляции.