(command.CommandList
  children: [
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<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.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:title spids:[25])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_DollarName '$txt'))} {(Lit_Other ':')} 
                                {(SQ <'.*/\\(.*\\)\\.txt$'>)}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [26 38]
                      )
                    }
                  spids: [25]
                )
              ]
              spids: [25]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:from spids:[41])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        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 ($ VSub_DollarName '$txt'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [42 63]
                      )
                    }
                  spids: [41]
                )
              ]
              spids: [41]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:abstract spids:[67])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        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 ($ VSub_DollarName '$txt'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [68 96]
                      )
                    }
                  spids: [67]
                )
              ]
              spids: [67]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.SimpleCommand
                      words: [
                        {(grep)}
                        {(SQ <'Content-type: text/asciidoc'>)}
                        {($ VSub_DollarName '$txt')}
                      ]
                      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:file spids:[117])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(expr)} {(DQ ($ VSub_DollarName '$txt'))} {(Lit_Other ':')} 
                                        {(SQ <'\\(.*\\)\\.txt$'>)}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [118 130]
                              ) (.html)
                            }
                          spids: [117]
                        )
                      ]
                      spids: [117]
                    )
                  ]
                  spids: [16777215 114]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:file spids:[137])
                      op: Equal
                      rhs: {(DQ ($ VSub_DollarName '$txt'))}
                      spids: [137]
                    )
                  ]
                  spids: [137]
                )
              ]
              spids: [134 143]
            )
            (C {(echo)} 
              {
                (DQ ('* link:') ($ VSub_DollarName '$file') ('[') ($ VSub_DollarName '$title') ('] ') 
                  ($ VSub_DollarName '$from') ('\n') ($ VSub_DollarName '$abstract') ('\n') ('\n')
                )
              }
            )
          ]
          spids: [22 163]
        )
      spids: [16777215 16777215]
    )
  ]
)