#!/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*
IyEvYmluL2Jhc2gKCiMgaWRlb25lIGJvaWxlcnBsYXRlOiBydW4gaW4gdGVtcCBkaXIKdD0kKG1rdGVtcCAtZCAtdCBpZGVvbmUuWFhYWFhYWFgpIHx8IGV4aXQKdHJhcCAncm0gLXJmICIkdCInIEVSUiBFWElUCmNkICIkdCIKCm1rZGlyIC1wIHNvc3sxLi4zfQp0b3VjaCBzb3MxL3Nvc3JlcG9ydDEudGFyLmd6IFwKICAgICAgc29zMi9zb3NyZXBvcnQyLnRhci5neiBcCiAgICAgIHNvczMvc29zcmVwb3J0My50YXIuZ3oKZWNobyBteXNlcnZlcjEgPnNvczEvaG9zdG5hbWVfbWFwLnR4dAplY2hvIG15c2VydmVyMiA+c29zMi9ob3N0bmFtZV9tYXAudHh0CmVjaG8gbXlzZXJ2ZXIzID5zb3MzL2hvc3RuYW1lX21hcC50eHQKCnRyIF8gJ1x0JyA8PFw6ID5tYWNoaW5lX2xpc3QudHh0CltvbmVdYXBwbGUgbWFjaGluZSAjMV9teXNlcnZlcjEKW3R3b11hcHBsZSBtYWNoaW5lICMyX215c2VydmVyMgpbdGhyZWVdYXBwbGUgbWFjaGluZSAjM19teXNlcnZlcjMKOgoKCnNydm5hbWUgKCkgewogICAgYXdrIC12IHNydj0iJChjYXQgIiQxIikiIC1GICdcdCcgJyQyPT1zcnYgeyBwcmludCAkMTsgZXhpdCB9JyBtYWNoaW5lX2xpc3QudHh0Cn0KCmZvciBkaXIgaW4gLi9zb3MqLzsgZG8KICAgIHNlcnZlcj0kKHNydm5hbWUgIiRkaXIiL2hvc3RuYW1lX21hcC50eHQpCiAgICBtdiAiJGRpciIvc29zcmVwb3J0Ki50YXIuZ3ogIiRkaXIvJHNlcnZlci50YXIuZ3oiCmRvbmUKCmxzIC1sIHNvcyo=