如何在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
,您还可以使用其他实用程序,例如awk
或sed
这里有几个例子。假设您要在名为 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中查找包含字符串的行[关闭]的主要内容,如果未能解决你的问题,请参考以下文章