(command.CommandList children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 16 stdin_parts: [ <'Git Howto Index\n'> <'===============\n'> <'\n'> <'Here is a collection of mailing list postings made by various\n'> <'people describing how they use Git in their workflow.\n'> <'\n'> ] ) ] ) (command.ForEach iter_name: txt do_arg_iter: T body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:title) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<expr>} {(DQ ($ Id.VSub_DollarName '$txt'))} {<Id.Lit_Other ':'>} {(SQ <'.*/\\(.*\\)\\.txt$'>)} ) ] ) ) } spids: [25] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:from) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<sed>} {<-ne>} { (SQ <'\n'> <'\t/^$/q\n'> <'\t/^From:[ \t]/{\n'> <'\t\ts///\n'> <'\t\ts/^[ \t]*//\n'> <'\t\ts/[ \t]*$//\n'> <'\t\ts/^/by /\n'> <'\t\tp\n'> <'\t}\n'> <'\t'> ) } {(DQ ($ Id.VSub_DollarName '$txt'))} ) ] ) ) } spids: [41] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:abstract) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<sed>} {<-ne>} { (SQ <'\n'> <'\t/^Abstract:[ \t]/{\n'> <'\t\ts/^[^ \t]*//\n'> <'\t\tx\n'> <'\t\ts/.*//\n'> <'\t\tx\n'> <'\t\t: again\n'> <'\t\t/^[ \t]/{\n'> <'\t\t\ts/^[ \t]*//\n'> <'\t\t\tH\n'> <'\t\t\tn\n'> <'\t\t\tb again\n'> <'\t\t}\n'> <'\t\tx\n'> <'\t\tp\n'> <'\t\tq\n'> <'\t}'> ) } {(DQ ($ Id.VSub_DollarName '$txt'))} ) ] ) ) } spids: [67] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Simple words: [ {<grep>} {(SQ <'Content-type: text/asciidoc'>)} {($ Id.VSub_DollarName '$txt')} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<expr>} {(DQ ($ Id.VSub_DollarName '$txt'))} {<Id.Lit_Other ':'>} {(SQ <'\\(.*\\)\\.txt$'>)} ) ] ) ) <.html> } spids: [117] ) ] ) ] spids: [100 114] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$txt'))} spids: [137] ) ] ) ] ) (C {<echo>} { (DQ <'* link:'> ($ Id.VSub_DollarName '$file') <'['> ($ Id.VSub_DollarName '$title') <'] '> ($ Id.VSub_DollarName '$from') <'\n'> ($ Id.VSub_DollarName '$abstract') <'\n'> <'\n'> ) } ) ] ) ) ] )