(command.Pipeline
  children: [
    (C {<cat>} {($ Id.VSub_Number 1)})
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: (condition.Shell commands:[(C {<read>} {<line>})])
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Pipeline
                  children: [
                    (C {<echo>} {($ Id.VSub_DollarName line)})
                    (C {<awk>} 
                      {
                        (SQ 
                          <
'NF==4 { print "mkdir -p "$4" || exit 1; chmod "$1" "$4" || exit 1; chown "$2" "$4" || exit 1; chgrp "$3" "$4" || exit 1" } NF==3 { print "rm "$1" ; ln -s "$3" "$1" || exit 1" } '
                          >
                        )
                      }
                    )
                    (C {<sh>})
                  ]
                  negated: F
                  stderr_indices: []
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
        )
      redirects: []
    )
  ]
  negated: F
  stderr_indices: []
)