#!/bin/bash

# ideone boilerplate: run in temp dir
t=$(mktemp -d -t ideone.XXXXXXXX) || exit
trap 'rm -rf "$t"' ERR EXIT
cd "$t"

mkdir -p sos{1..3}
touch sos1/sosreport1.tar.gz \
      sos2/sosreport2.tar.gz \
      sos3/sosreport3.tar.gz
echo myserver1 >sos1/hostname_map.txt
echo myserver2 >sos2/hostname_map.txt
echo myserver3 >sos3/hostname_map.txt

tr _ '\t' <<\: >machine_list.txt
[one]apple machine #1_myserver1
[two]apple machine #2_myserver2
[three]apple machine #3_myserver3
:


srvname () {
    awk -v srv="$(cat "$1")" -F '\t' '$2==srv { print $1; exit }' machine_list.txt
}

for dir in ./sos*/; do
    server=$(srvname "$dir"/hostname_map.txt)
    mv "$dir"/sosreport*.tar.gz "$dir/$server.tar.gz"
done

ls -l sos*