(command.CommandList children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:width) op:assign_op.Equal rhs:{<72>} spids:[6])] ) (command.Pipeline children: [ (command.ForEach iter_name: input do_arg_iter: T body: (command.DoGroup children: [ (C {<echo>} {($ Id.VSub_DollarName '$input')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lines) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [{<wc>} {<-l>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$input')} ) ] do_fork: T ) (C {<sed>} {(SQ <'s/ //g'>)}) ] negated: F ) ) ) } spids: [21] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:chars) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [{<wc>} {<-c>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$input')} ) ] do_fork: T ) (C {<sed>} {(SQ <'s/ //g'>)}) ] negated: F ) ) ) } spids: [43] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:owner) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ls>} {<-ld>} {($ Id.VSub_DollarName '$input')}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) ) } spids: [65] ) ] ) (C {<echo>} {(DQ <----------------------------------------------------------------->)}) (C {<echo>} { (DQ <'File '> ($ Id.VSub_DollarName '$input') <' ('> ($ Id.VSub_DollarName '$lines') <' lines, '> ($ Id.VSub_DollarName '$chars') <' characters, owned by '> ($ Id.VSub_DollarName '$owner') <'):'> ) } ) (C {<echo>} {(DQ <----------------------------------------------------------------->)}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<line>})]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name line> prefix_op: (Id.VSub_Pound) ) } {<-gt>} {($ Id.VSub_DollarName '$width')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))}) (C {<fmt>}) (C {<sed>} {<-e>} {(SQ <'1s/^/ /'>)} {<-e>} {(SQ <'2,$s/^/+ /'>)}) ] negated: F ) ] spids: [125 142] ) ] else_action: [(C {<echo>} {(DQ <' '> ($ Id.VSub_DollarName '$line'))})] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$input')} ) ] ) (C {<echo>} {(DQ <----------------------------------------------------------------->)}) ] ) ) (C { (braced_var_sub token: <Id.VSub_Name PAGER> suffix_op: (suffix_op.Slice begin:<Id.Lit_ArithVarLike more>) ) } ) ] negated: F ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )