How to find lines containing a string in linux [closed]
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.