使用linux下的命令搜索关键字有两种方法,一种是使用vi或vim编辑器里的查找功能,另一种是用grep命令,下面是具体操作:
方法一:
1、首先需要打开命令行。
2、然后输入grep命令,后面需要加上要搜索的内容,并且加上文件名。
3、接下来就可以看到所例举出来的能够匹配的内容了。
方法二:
单个文件能够用vi或者vim编辑器打开日志文件,使用编辑器里面的查找功能进行查找。
在查看模式下,符号/后面跟关键字向下搜索,符号“?”后面跟关键字向上搜索,按小写n查找下一个,按大写N查找上一个。
以上就是小编的分享了,希望能够帮助到大家。
Linux如何查找含有指定关键字的文件
1、grep 过滤法
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
可以不加引号,如果关键字包含空格,特殊符号 等,必须加双引号
[root@FFF home]# grep VMThread hs_err_pid28194.log Current thread (0x00007f4c300f9800): VMThread [stack: 0x00007f4c1de7f000,0x00007f4c1df7f000] [id=28199]V [libjvm.so 0xab40fa] VMThread::evaluate_operation(VM_Operation*) 0xbaV [libjvm.so 0xab447e] VMThread::loop() 0x1ceV [libjvm.so 0xab48f0] VMThread::run() 0x70=>0x00007f4c300f9800 VMThread [stack: 0x00007f4c1de7f000,0x00007f4c1df7f000] [id=28199]
如果想忽略大小写,可以用-i参数:
grep -i VMThread hs_err_pid28194.log
如果想搜索目录里所有文件,包括子目录的话,并且在结果中显示行号,可以用以下命令:
grep -nr /home *
grep 常用参数
-i, --ignore-case: 忽略大小写
-n, --line-number: 显示行号
-R, -r, --recursive: 递归搜索子目录
-v, --invert-match: 输出没有匹配的行
我们可以通过管道操作来让grep变得更强大,管道操作就是把前面一条命令的输出作为后面一条命令的输入,从而把很多简单的命令组合起来完成复杂的功能。例如,如果我们想查找包含aaa的行,但又想过滤掉bbb,可以用下面的命令:
grep aaa demo.txt | grep -v bbb
如果我们想把搜索结果保存起来,那么可以把命令的标准输出重定向到文件,即把输出内容保存在demo_new.txt这个文件里,如果文件不存在,则自动创建。
grep aaa demo.txt | grep -v bbb > demo_new.txt
重定向符号>和管道操作符号|的区别是,重定向后面接的是一个文件,它后面不能再接任何文件或命令了;而管道操作后面接的是命令,可以无限地接下去。如果想以追加方式写到文件,可以用>>。管道操作是Linux命令行的一种哲学,它是计算机技术中少有的能沿用几十年的技术之一。通过管道操作,一行命令可以完成Windows下上千行程序也不能完成的文本处理功能。
2、cat 配合 grep 过滤法grep、cat、管道符配合使用
cat hs_err_pid28194.log | grep "VMThread"
vim 打开文件,在命令行模式,键入/关键字,查找对应的关键字
4、less 翻页查找法这种方法也是结合/关键字,和vim一致