Não estou certo de que o awk substituirá uma variável pelo seu valor em
f && /<details input="inputName"/
você pode querer substituir por
f && /<details input="/ && index($2,inputName) > 0
editar:
A parte final do awk deve ser:
/<machine.*name=/ { f=1 ; m=0 ; res="" }
f { res = res $0 ORS }
f && /<details input="/ && index($2,inputName) > 0 { m=1 ;}
/<\/machine>/ { f=0 ; if (m) print res ; } ## last line already in res