             ins = " -i "
         else
             ins = ""
+        query = '"' + query.replace(/"/g, '\\"') + '"'
         if recursive
-            cmd = "find * -type f | grep #{ins} #{query}; rgrep -H #{ins} #{query} *"
+            cmd = "find * -type f | grep #{ins} #{query}; rgrep -H #{ins} #{query} * "
         else
-            cmd = "ls -1 | grep #{ins} #{query}; grep -H #{ins} #{query} *"
+            cmd = "ls -1 | grep #{ins} #{query}; grep -H #{ins} #{query} * "
+
+        # Exclude worksheet input cell markers
+        cmd += " | grep -v #{diffsync.MARKERS.cell}"
 
         path = @current_pathname()
 

        salvus_client.exec
            project_id : @project.project_id
            command    : cmd + " | cut -c 1-256"  # truncate horizontal line length (imagine a binary file that is one very long line)
            timeout    : 5   # how long grep runs on client
            network_timeout : 10   # how long network call has until it must return something or get total error.
            max_output : max_output
            bash       : true
            err_on_exit: true

                    else
                        # the rgrep part
                        filename = line.slice(0,i)
                        context = line.slice(i+1)
                        # strip codes in worksheet output
                        if context.length > 0 and context[0] == diffsync.MARKERS.output
                            i = context.slice(1).indexOf(diffsync.MARKERS.output)
                            context = context.slice(i+2,context.length-1)
                        r = search_result.clone()
                        r.find("span").text(context)
                        r.find("a").text(filename).data(filename: path_prefix + filename).click () ->
