How to find lines containing a string in linux [closed] How to find lines containing a string in linux [closed] linux linux

How to find lines containing a string in linux [closed]


The usual way to do this is with grep, which uses a pattern to match lines:

grep 'pattern' file

Each line which matches the pattern will be output. If you want to search for fixed strings only, use grep -F 'pattern' file.


Besides grep, you can also use other utilities such as awk or sed

Here is a few examples. Let say you want to search for a string is in the file named GPL.

Your sample file

user@linux:~$ cat -n GPL      1    The GNU General Public License is a free, copyleft license for     2    The licenses for most software and other practical works are designed     3  the GNU General Public License is intended to guarantee your freedom to     4  GNU General Public License for most of our software;user@linux:~$ 

1. grep

user@linux:~$ grep is GPL   The GNU General Public License is a free, copyleft license forthe GNU General Public License is intended to guarantee your freedom touser@linux:~$ 

2. awk

user@linux:~$ awk /is/ GPL   The GNU General Public License is a free, copyleft license forthe GNU General Public License is intended to guarantee your freedom touser@linux:~$ 

3. sed

user@linux:~$ sed -n '/is/p' GPL  The GNU General Public License is a free, copyleft license forthe GNU General Public License is intended to guarantee your freedom touser@linux:~$ 

Hope this helps


/tmp/myfile

first line textwanted textother text

the command

$ grep -n "wanted text" /tmp/myfile | awk -F  ":" '{print $1}'2

The -n switch to grep prepends any matched line with the line number (followed by :), while the second command uses the colon as a column separator (-F ":") and prints out the first column of any line. The final result is the list of line numbers with a match.