(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: False 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: False 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:[191196]))} ) ] 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: False 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:[272277]))} ) ] 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: False 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: False ) ] 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 "$@"))}) ] )