如何在linux中查找包含字符串的行[关闭]

Posted

技术标签:

【中文标题】如何在linux中查找包含字符串的行[关闭]【英文标题】:How to find lines containing a string in linux [closed] 【发布时间】:2012-08-01 14:53:51 【问题描述】:

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

【问题讨论】:

man grep 告诉你你想要什么。 @fdomig :这应该是一个答案 @fdomig - 不过它会帮助其他人在未来找到这个问题的答案 【参考方案1】:

通常的方法是使用grep,它使用regex 模式来匹配行:

grep 'pattern' file

将输出与模式匹配的每一行。如果您只想搜索固定字符串,请使用grep -F 'pattern' file

【讨论】:

addition grep -rn 'string' /path/ 如果要在文件夹中搜索字符串,其中文件包括行号【参考方案2】:

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

这里有几个例子。假设您要在名为 GPL 的文件中搜索字符串 is

您的示例文件

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:~$ 

希望对你有帮助

【讨论】:

【参考方案3】:

/tmp/我的文件

first line text
wanted text
other text

命令

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

-n 切换到 grep 会在任何匹配的行前面加上行号(后跟 :),而第二个命令使用冒号作为列分隔符 (-F ":") 并打印出任何匹配行的第一列线。最终结果是匹配的行号列表。

【讨论】:

答案应该包含对给定命令的解释。此外,OP 可能要求的是实际行,而不是行号 @Ilario 好的,请随时为答案提供您的编辑贡献。【参考方案4】:

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

$ grep pattern filename

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

【讨论】:

【参考方案5】:

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

qstat -f > queue.txt

Grep 作业名称

grep 'Job_Name' queue.txt

【讨论】:

以上是关于如何在linux中查找包含字符串的行[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Linux里如何查找文件内容

Linux里如何查找文件内容

如何在Linux下查找文件内容包含某个特定字符串的文件

如何在Unix下使用sed命令

linux下怎样在一个文件里面查找一个字符串?

如何在包含子字符串的数据框中查找所有行?