In this tutorial, we'll see several examples of file content search for Linux Mint. The examples will cover built in tools and additional software which can be added to Linux Mint. The examples are applicable for other Debian like systems - Ubuntu etc. The default file explorer tool Nemo is not capable of searching the file content.

Step 1: Use grep to search in file content with terminal

So let's start with a simple example where we are searching (exact match) for term pandas in home folder /home/user/datasets:

grep -rnw '/home/user/datasets' -e 'pandas'

Here is the flags used for this example:

  • -r / -R - recursive search
  • -n - show line number
  • -w - match the whole word
  • -e - pattern. Several regex patterns can be provided

Note: Additional useful parameters for more accurate and faster search are :

  • -i - case insensitive search. It will slow down the process a lot
  • -l (lower-case L) show only the file name of matching files
  • --exclude-dir={dir1,dir2} - exclude directories from the search
  • --include=\*.{py,ipynb} - search only files ending with py and ipynb
  • --exclude=\*.xls - search all files except those which end with xls

Step 2: Use grep to search recently updated files for text

Next, we'll see how to search only in the recently updated files. In this example files updated in the last hour:

grep -r "^$(date -d '-1 hour' +'%H')" . | grep -r -a 'pandas' .

In the example above we are searching in the current folder - denoted by dot - . for all files updated in the last hour:

grep -r "^$(date -d '-1 hour' +'%H')" .

Next we search the content of found files by piping the results of the first command with |:

grep -r -a 'pandas' .

This speed up the search process with magnitudes as you can see in this practical example: Restore Notebook from the browser cache

Step 3: Advanced Search Tools - Search Monkey

If you prefer to use search tools there are many option available for Linux Mint - we will start with Search Monkey. It can be installed from the Software Center or by:

sudo apt-get install searchmonkey

It's a powerful tool for finding file contents by regular expression and customization. You can find the interface below:

linux_mint_advanced_search_tool_search_monkey

It allows:

  • history of search results
  • find based on create/modify date of the files
  • limit results
  • size limits

It's a fast and easy tool to find text inside files with many constraints.

Step 4: Simple Search Tools - Catfish

Another simple option for text file content search is Catfish. It can be installed from Software Center or by:

sudo apt-get install catfish

It's a bit simpler than Search Monkey but it's good enough to find files based on their content. It has several options like:

  • search hidden files
  • exact match
  • file creation time

Step 5: Recoll search in Office files content - excel, docs, pdf

Another powerful tool is the Recoll. Two installation option are available:

sudo apt-get install recoll

or the Software Center.

python_online_editor_2020

It has special query language - for example search in a given directory:

dir:/home/user/Documents youtube

It can be used for search in different file formats like:

  • Excel - xls, xlsx, ods
  • Word - doc, docx, odt
  • PDF
  • epub

To find more about this you can read the official documentation:

Recoll user manual

It may require additional packages to be installed if you like to search in word and excel files. Libraries depend on the version of the OS that you have.

Note: A disadvantage of this program is the indexing which takes considerable disk space.

Step 6: Search pdf files with pdfgrep

There is a special tool called pdfgrep which can be installed with:

sudo apt-get install pdfgrep

Several options are possible - search recursively for pandas in PDFs(the PDF files should be text and not images!):

pdfgrep -r "pandas"

or search for pdf files in a folder and then search inside them by:

find /home/user/Documents -iname '*.pdf' -exec pdfgrep pattern {} +

If none of these options work for you then you can write a custom python script in order to search and modify Excel file content. Several
examples can be found here: How to Search and Replace in Excel File using Python