(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes_in_gb) op: assign_op.Equal rhs: {(1048576)} spids: [10] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host) op: assign_op.Equal rhs: {(DQ (intuitive.com))} spids: [19] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-eq)} {(0)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:37) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('Usage: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:46) command_list: (command.CommandList children: [(C {(basename)} {($ Id.VSub_Number '$0')})] ) ) (' logfile') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:54) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:58) arg_word: {(1)} ) ] spids: [25 39] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-r)} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:79) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('Error: log file ') ($ Id.VSub_Number '$1') (' not found.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:92) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:96) arg_word: {(1)} ) ] spids: [65 81] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:firstdate) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:105) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(head)} {(-1)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{print $4}' span_id:119))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/\\[//' span_id:127))}) ] negated: F ) ] ) ) ) } spids: [103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lastdate) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:134) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(tail)} {(-1)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{print $4}' span_id:148))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/\\[//' span_id:156))}) ] negated: F ) ] ) ) ) } spids: [132] ) ] ) (C {(echo)} {(DQ ('Results of analyzing log file ') ($ Id.VSub_Number '$1'))}) (C {(echo)} {(DQ )}) (C {(echo)} { (DQ (' Start date: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:178) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$firstdate')}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/:/ at /' span_id:186))}) ] negated: F ) ] ) ) ) } ) (C {(echo)} { (DQ (' End date: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:195) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$lastdate')}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/:/ at /' span_id:203))}) ] negated: F ) ] ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hits) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:211) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(wc)} {(-l)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:216) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/[^[:digit:]]//g' span_id:227))} ) ] negated: F ) ] ) ) ) } spids: [209] ) ] ) (C {(echo)} { (DQ (' Hits: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:237) command_list: (command.CommandList children: [(C {(nicenumber)} {($ Id.VSub_DollarName '$hits')})] ) ) (' (total accesses)') ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pages) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:248) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(grep)} {(-ivE)} {(SQ (Token id:Id.Lit_Chars val:'(.txt|.gif|.jpg|.png)' span_id:254))} {(DQ ($ Id.VSub_Number '$1'))} ) (C {(wc)} {(-l)}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/[^[:digit:]]//g' span_id:272))} ) ] negated: F ) ] ) ) ) } spids: [246] ) ] ) (C {(echo)} { (DQ (' Pageviews: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:282) command_list: (command.CommandList children: [(C {(nicenumber)} {($ Id.VSub_DollarName '$pages')})] ) ) (' (hits minus graphics)') ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:totalbytes) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:293) command_list: (command.CommandList children: [ (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{sum+=$10} END {print sum}' span_id:297))} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ) ) } spids: [291] ) ] ) (C {(/bin/echo)} {(-n)} { (DQ (' Transferred: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:313) command_list: (command.CommandList children: [(C {(nicenumber)} {($ Id.VSub_DollarName '$totalbytes')})] ) ) (' bytes ') ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$totalbytes')} {(-gt)} {($ Id.VSub_DollarName '$bytes_in_gb')} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:334) ) ] action: [ (C {(echo)} { (DQ ('(') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:343) command_list: (command.CommandList children: [ (C {(scriptbc)} {($ Id.VSub_DollarName '$totalbytes')} {(/)} {($ Id.VSub_DollarName '$bytes_in_gb')} ) ] ) ) (' GB)') ) } ) ] spids: [322 336] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$totalbytes')} {(-gt)} {(1024)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:367) ) ] action: [ (C {(echo)} { (DQ ('(') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:376) command_list: (command.CommandList children: [ (C {(scriptbc)} {($ Id.VSub_DollarName '$totalbytes')} {(/)} {(1024)}) ] ) ) (' MB)') ) } ) ] spids: [355 369] ) ] else_action: [(C {(echo)} {(DQ )})] ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('The ten most popular pages were:'))}) (command.Pipeline children: [ (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{print $7}' span_id:418))} {(DQ ($ Id.VSub_Number '$1'))} ) (C {(grep)} {(-ivE)} {(SQ (Token id:Id.Lit_Chars val:'(.gif|.jpg|.png)' span_id:432))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/\\/$//g' span_id:442))}) (C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-rn)}) (C {(head)} {(-10)}) ] negated: F ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('The ten most common referrer URLs were:'))}) (command.Pipeline children: [ (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{print $11}' span_id:486))} {(DQ ($ Id.VSub_Number '$1'))} ) (C {(grep)} {(-vE)} { (DQ ('(^') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:503) ) (-) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:505)) (Id.Lit_Other '$') ('|/www.') ($ Id.VSub_DollarName '$host') ('|/') ($ Id.VSub_DollarName '$host') (')') ) } ) (C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-rn)}) (C {(head)} {(-10)}) ] negated: F ) (C {(echo)} {(DQ )}) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:544) arg_word:{(0)}) ] )