С деятельностью, которую вы делаете, как объяснено в вашем вопросе, кажется, вам нужен только awk
для всех этих вещей.
awk '$NF' infile*.txt > outfile.txt
$NF
относится к последнему слову (означает слово с пробелами вокруг )в каждой строке в awk
.
Пока существует приведенное выше awk
решение, вы можете использовать чтение строк в массив и печать последнего элемента этого массива с отрицательным индексом (bash 4.3 и выше ).
arrayedline=( $line )
printf "%s\n", "${arrayedline[@]-1}"
В более старой версии bash
вы можете использовать выражение в индексе arrayedline[${#arrayedline[@]-1}]
, которое с подстрокой один из длины массива ${#arrayedline[@]}
мы можем получить последний элемент этого.
arrayedline=( $line )
printf "%s\n", "${arrayedline[${#arrayedline[@]}-1]}"
Или вы даже можете использовать следующее:
printf "%s\n", "${arrayedline[@]:(-1)}" #or
printf "%s\n", "${arrayedlne[@]: -1}"
Теперь, когда в bash
индекс массива начинается с 0
.
Вы обновили вывод sudo fdisk -l /dev/sda
, и он не показывает свободное место на диске.
Можете ли вы предоставить вывод sudo fdisk -l
?