Stai esagerando, approfitta della struttura dei tuoi file per mantenerlo semplice!
Se troviamo la stringa [United in una riga, mettendo in maiuscolo tutto, dalla parentesi graffa di chiusura alla fine della riga, si ottiene il risultato desiderato. Traducendolo in lingua Sed,
sed '/\[United/s/].*/\U&/' file
Si noti che quanto sopra è specifico di GNU Sed. Se non disponibile ma in un sistema POSIX, puoi usare Ex (o vedere la versione Awk di αғsнιη) con una sintassi simile:
printf '%s\n' 'g/\[United/s/].*/\U&/' '%p' | ex file
Per salvare le modifiche al file invece di stampare i risultati, modifica %p a x .
Usando awk :
awk -F"[][]" '$2 ~/^United/ { $2="["$2"]"; $3=toupper($3); }1' OFS='' infile
entro [...] abbiamo definito entrambi ] e [ come separatore di campo quindi controllando il secondo campo se inizia con United text, se sì allora aggiungi di nuovo [] intorno al secondo archiviato (presumo che non ci siano altre colonne che inclinino questi caratteri, altrimenti quei campi mancheranno questo); quindi convertiamo la terza colonna nel suo valore maiuscolo; l'idioma 1 è il trigger awk default print (una specie di condizione sempre vera).