function newline_to_space(){
  # Replaces all newlines with spaces
  # $1: name of variable

  local -n ptr=$1
  # Replace newlines with spaces
  # See bash string substitution: https://gist.github.com/JPvRiel/b279524d3e56229a896477cb8082a72b

  echo "removing newlines in str: -->$ptr<--"
  ptr="${ptr//$'\n'/' '}"
  echo "new str is: -->$ptr<--"
}

function get_block_devices(){
  # return: the following variables:
  #   BLOCK_DEVICES (array with each block device as one entry)

  # get list of devices, one per line
  local tmp
  tmp=$(lsblk -dplnx size -o name | grep -Ev "boot|rpmb|loop")

  readarray -t BLOCK_DEVICES <<<"$tmp"
}

function get_block_devices_with_size() {
  # return: the following variables:
  #   BLOCK_DEVICE_SIZES (space separated list of block devices and their sizes)

  # one could use sed to remove multiple white spaces
  # sed 's|\s\s*| |'
  BLOCK_DEVICE_SIZES="$(lsblk -dplnx size -o name,size | grep -Ev "boot|rpmb|loop" | tac)"

  # replace newlines with spaces
  newline_to_space BLOCK_DEVICE_SIZES
}