Как получить смещение раздела с помощью bash-скрипта?

Я могу использовать parted чтобы узнать смещение моего изображения.

sudo parted -s image.img unit B print
Model:  (file)
Disk /home/user/image.img: 107374182400B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start     End            Size           Type     File system  Flags
 1      2097152B  107374182399B  107372085248B  primary  ext4

Например, раздел начинается с 2097152,

Как я могу получить 2097152 со скриптом bash?

Я мог бы, вероятно, разобрать вывод, но, возможно, есть более подходящий метод?

2 ответа

Решение

Один вариант, передать вывод в awk

sudo parted -s image.img unit B print | 
awk '/^Number/{p=1;next}; p{gsub(/[^[:digit:]]/, "", $2); print $2}' 

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

      sudo parted -s image.img unit B print | sed 's/^ //g' | grep "^1 " | tr -s ' ' | cut -d ' ' -f2
  • sedудалит начальный пробел
  • grepизвлечет строку для раздела 1 (измените этот номер, если вы хотите другой раздел)
  • trудалит лишний пробел между словами
  • окончательный cutизвлечет второе число в строке, которая является начальным смещением
Другие вопросы по тегам