linux如何实现,对某个文本循环查找多个字符串,并输出所在行的内容?

linux如何实现,对某个文本循环查找多个字符串,并输出所在行的内容?,第1张

在 Linux 中,您可以使用 grep 命令来实现这个功能。该命令可以用来在文本文件中搜索特定的文本模式。

例如,要查找在文件 all.log 中含有单词 word 的行,您可以使用以下命令:

grep word all.log

如果要查找多个单词,您可以将它们放在一个字符串中,然后将该字符串作为 grep 命令的参数。例如,要查找在文件 all.log 中含有单词 word、list、hello、good 或 bad 的行,您可以使用以下命令:

grep "word|list|hello|good|bad" all.log

请注意,单词之间使用 | 符号隔开,表示“或”的意思。

此外,您还可以使用 -f 选项来指定要查找的单词列表所在的文件,这样就可以避免在命令行中手动输入单词列表。例如,如果要查找的单词列表保存在文件 search.txt 中,您可以使用以下命令:

grep -f search.txt all.log

希望这些信息能够帮助您解决问题。

概述

使用grep可以查找包含指定字符串的文件

步骤详解

格式:

grep “要查找的字符串” 文件名

例子:

grep "192.168.0.1" /etc

文件名可以使用基本正则表达式(BRE),例如, 查找test目录下的所有文件,是否包含www.dutycode.com字符串。

grep “www.dutycode.com” /root/zzh/test/*

小贴士:使用-n 参数,可以显示字符串在文件中的行数

拓展内容

关于grep的命令的使用:

几个常用的查询指令:

1、查找时不区分字符串的大小写

grep -i “查找的字符串” 文件名  

2、查找时使用正则表达式,匹配符合的字符串

grep -e “正则表达式” 文件名  

3、查找不匹配指定字符串的行:

grep -v “被查找的字符串”  文件名  

4、查找时显示被查找字符串所在的行数

grep -n “查找的字符串” 文件名  

可以使用vim打开文件,然后通过 vim编辑 中的 /(向后查找)或者 ?(向前查找)来查找相应的字符串。

示例:用vim打开/etc/passwd查找admin用户名

vim /etc/passwd

打开文件后,直接输入 /admin 回车即可查找如下图所示:

回车执行,vim查找到后,会标识出来,如下图所示:

另外:使用vim也可以打开可执行程序来查找字符串(在程序没有加壳或者使用其它字符串保护的前提下)。

示例:在test程序中查找hello字符串。

虽然使用vim打开二进制程序文件,显然的是乱码,但是明文字符串依然能查找到,如下图所示:

扩展:在Linux中如果要查找二进程文件即应用程序中的字符串,可以使用反汇编器、调试器等等,比如IDA,就提供强大的字符串查找功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8739647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存