[How To] find files containing specific text on Linux

How to find files containing specific text on Linux

We can find files containing specific text on Linux in the following ways.

The content of the article

grep command

# grep -rnw '/path/to/look/inside' -e 'text'
  • i – ignore case (optional in your case).
  • R – recursive.
  • l – “show the file name, not the result itself”.
  • / – starting at the root of your machine.

Example:

# grep -rnw '/var/log/' -e ' 2.805245'

/var/log/kern.log:1449:Jun 22 13:17:45 gharutyunyan-virtual-machine kernel: [    2.805245] scsi host20: ahci
/var/log/syslog.1:2696:Jun 22 13:17:45 gharutyunyan-virtual-machine kernel: [    2.805245] scsi host20: ahci
/var/log/dmesg:1428:[    2.805245] kernel: scsi host20: ahci

ask command

ack 'text'

Example:

# ack ' 2.805245'
kern.log
1449:Jun 22 13:17:45 gharutyunyan-virtual-machine kernel: [    2.805245] scsi host20: ahci

syslog.1
2696:Jun 22 13:17:45 gharutyunyan-virtual-machine kernel: [    2.805245] scsi host20: ahci

dmesg
1428:[    2.805245] kernel: scsi host20: ahci

[adinserter block=”6″]

find command

find /path/to/look/inside -type f -exec grep -l "text" {} \; 

Example:

# find /var/log/ -type f -exec grep -l " 2.805245" {} \;
/var/log/kern.log
/var/log/syslog.1
/var/log/dmesg

RipGrep command

RipGrep command works very fast

rg 'text' /path/to/look/inside -l

Example:

# rg " 2.805245" /var/log/ -l
/var/log/kern.log
/var/log/syslog.1
/var/log/dmesg

ag command

The Silver Searcher command

ag 'text' /path/to/look/inside -l

Example:

# ag ' 2.805245' /var/log/ -l
/var/log/kern.log
/var/log/syslog.1
/var/log/dmesg

Video

Test Environment

Ubuntu 20.04 LTS (Focal Fossa)

VMware Workstation 15.1.0

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.