def do_diff(self, line):
        if not line:
            raise ShellException("Could not understand grep request, " +
                                 "see 'help grep'")

        mods = self.parseModifiers(line)
        line = mods['line']

        tline = line[:]
        search_str = ""
        start_tm = "head"
        duration = ""
        slice_tm = "10"
        show_count = 1
        limit = ""
        sources = []
        is_casesensitive = True
        while tline:
            word = tline.pop(0)
            if word == '-s':
                search_str = tline.pop(0)
                search_str = strip_string(search_str)
            elif word == '-f':
                start_tm = tline.pop(0)
                start_tm = strip_string(start_tm)
            elif word == '-d':
                duration = tline.pop(0)
                duration = strip_string(duration)
            elif word == '-t':
                slice_tm = tline.pop(0)
                slice_tm = strip_string(slice_tm)
            elif word == '-k':
                show_count = tline.pop(0)
                show_count = int(strip_string(show_count))
            elif word == '-i':
                is_casesensitive = False
            elif word == '-n':
                try:
                    sources = [
                        int(i) for i in strip_string(
                            tline.pop(0)).split(",")]
                except:
                    sources = []
            elif word == '-l' and tline:
                limit = tline.pop(0)
                limit = int(strip_string(limit))
            else:
                raise ShellException(
                    "Do not understand '%s' in '%s'" % (word, " ".join(line)))
        grepRes = {}
        if search_str:
            files = self.logger.get_files_by_index(
                self.grep_cluster,
                sources)
            for timestamp in sorted(files.keys()):
                grep_res = self.logger.grepDiff(
                    files[timestamp],
                    search_str,
                    self.grep_cluster,
                    start_tm,
                    duration,
                    slice_tm,
                    show_count,
                    limit, is_casesensitive)
                self.view.showGrepDiff(timestamp, grep_res)
dataset/ETHPy150Open aerospike/aerospike-admin/lib/logcontroller.py/GrepFile.do_diff/original