(command.Pipeline children: [ (C {(locale)} {(-a)}) (C {(grep)} {(_)}) (C {(uniq)} {(-w5)}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(read)} {(lang)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (command.Sentence child: (C {(echo)} {(-ne)} {(DQ ($ VSub_DollarName '$lang') (Lit_Other '\\') (t))}) terminator: <Op_Semi ';'> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:locale_info) op: Equal rhs: { (command_sub left_token: <Left_Backtick '`'> command_list: (command.CommandList children: [ (command.Simple words: [{(locale)} {(territory)} {(language)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] more_env: [(env_pair name:LANG val:{($ VSub_DollarName '$lang')})] ) ] ) ) } ) ] ) (command.Pipeline children: [ (C {(echo)} {($ VSub_DollarName '$locale_info')}) (C {(sed)} {(SQ <'s/\\(.*\\) \\(.*\\)/\\1 (\\2)/'>)}) ] negated: F ) ] ) ) (C {(sort)} {(-k2)}) ] negated: F )