如何在linux中查找包含字符串的行

时间:2012-08-03 14:30:48

标签: linux string file search

我在Linux中有一个文件,我想在该文件中显示包含特定字符串的行,该怎么做?

5 个答案:

答案 0 :(得分:52)

通常的方法是使用grep

grep 'pattern' file

答案 1 :(得分:6)

grep系列命令(包括egrep,fgrep)是解决此问题的常用方法。

$ grep pattern filename

如果您正在搜索源代码,那么ack可能是更好的选择。它会自动搜索子目录并避免你通常不会搜索的文件(对象,SCM目录等)。

答案 2 :(得分:5)

的/ tmp / MYFILE

first line text
wanted text
other text

命令

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

答案 3 :(得分:1)

除了grep之外,您还可以使用其他实用程序,例如awksed

以下是一些示例。假设您要在名为is的文件中搜索字符串GPL

您的示例文件

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 for
the GNU General Public License is intended to guarantee your freedom to
user@linux:~$ 

2。 awk

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

3。 sed

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

希望这会有所帮助

答案 4 :(得分:1)

将长格式的队列作业信息写入文本文件

qstat -f > queue.txt

Grep职位名称

grep 'Job_Name' queue.txt