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