(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:FILES) op: Equal rhs: { (ArrayLiteralPart words: [ {(../) (Lit_Other '*') (.sh)} {(../) (Lit_Other '*') (/) (Lit_Other '*') (.sh)} {(../) (Lit_Other '*') (.py)} {(../) (Lit_Other '*') (/) (Lit_Other '*') (.py)} {(../) (Lit_Other '*') (/) (Lit_Other '*') (/) (Lit_Other '*') (.py)} ] ) } spids: [76] ) ] spids: [74] ) (FuncDef name: test-awk body: (BraceGroup children: [ (ForEach iter_name: awk iter_words: [{(gawk)} {(mawk)} {(TildeSubPart prefix:'') (/git/bwk/bwk)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {(---)}) (C {(echo)} {($ VSub_Name '$awk')}) (C {(echo)} {(---)}) (TimeBlock pipeline: (ForEach iter_name: i iter_words: [{(Lit_LBrace '{') (1..10) (Lit_RBrace '}')}] do_arg_iter: F body: (DoGroup children: [ (C {($ VSub_Name '$awk')} { (SQ <'\n'> <' { \n'> <' line = tolower($0)\n'> <' num_lines += 1\n'> <'\n'> <' # NOTE: gawk has length(); mawk does not\n'> <' if (!(line in unique)) {\n'> <' num_unique += 1\n'> <' }\n'> <' unique[line] += 1\n'> <' }\n'> <' END {\n'> <' print "unique lines: " num_unique\n'> <' print "total lines: " num_lines\n'> <' }\n'> <' '> ) } {(DQ (BracedVarSub token:<VSub_Name FILES> bracket_op:(WholeArray op_id:Lit_At) spids:[191 196]))} ) ] spids: [166 201] ) spids: [160 164] ) ) ] spids: [135 204] ) spids: [126 133] ) ] spids: [118] ) spids: [114 117] ) (FuncDef name: test-python body: (BraceGroup children: [ (TimeBlock pipeline: (ForEach iter_name: i iter_words: [{(Lit_LBrace '{') (1..10) (Lit_RBrace '}')}] do_arg_iter: F body: (DoGroup children: [ (C {(python)} {(-S)} {(-c)} { (SQ <'\n'> <'import collections\n'> <'import sys\n'> <'\n'> <'num_lines = 0\n'> <'num_unique = 0\n'> <'unique = collections.defaultdict(int)\n'> <'\n'> <'for path in sys.argv[1:]:\n'> <' with open(path) as f:\n'> <' for line in f:\n'> <' line = line.lower()\n'> <' num_lines += 1\n'> <'\n'> <' if line not in unique:\n'> <' num_unique += 1\n'> <' unique[line] += 1\n'> <'\n'> <'print "unique lines: ", num_unique\n'> <'print "total lines: ", num_lines\n'> <' '> ) } {(DQ (BracedVarSub token:<VSub_Name FILES> bracket_op:(WholeArray op_id:Lit_At) spids:[272 277]))} ) ] spids: [238 282] ) spids: [232 236] ) ) ] spids: [222] ) spids: [218 221] ) (FuncDef name: test-wc body: (BraceGroup children: [ (TimeBlock pipeline: (ForEach iter_name: i iter_words: [{(Lit_LBrace '{') (1..10) (Lit_RBrace '}')}] do_arg_iter: F body: (DoGroup children: [ (Pipeline children: [ (C {(cat)} { (DQ (BracedVarSub token: <VSub_Name FILES> bracket_op: (WholeArray op_id:Lit_At) spids: [316 321] ) ) } ) (C {(wc)} {(-c)}) ] negated: F ) ] spids: [310 331] ) spids: [304 308] ) ) ] spids: [294] ) spids: [290 293] ) (FuncDef name: files body: (BraceGroup children: [ (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name FILES> bracket_op: (WholeArray op_id:Lit_At) spids: [346 351] ) ) } ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name FILES> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [358 364] ) (' files') ) } ) ] spids: [340] ) spids: [336 339] ) (C {(DQ ($ VSub_At '$@'))}) ] )