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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下怎样在一个文件里面查找一个字符串?相关的知识,希望对你有一定的参考价值。

参考技术A

概述

1、在终端使用grep命令查找

2、用vim编辑文件查找

步骤详解

一、使用grep命令查找

格式:

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

例子:

grep “www.dutycode.com” test.txt

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

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

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


二、文件内使用vim编辑查找

使用 vim查找则在normal模式下

在normal模式下按下  /  即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个

格式

/字符串

例子

/test\\c

Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\\$匹配"vim$",在查找模式中加入\\c表示大小写不敏感查找.例如,在文件中查找set:

拓展内容

linux grep命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

1.命令格式:

grep [option] pattern file

2.命令功能:

用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

请问在linux下或windows下分别实现在多文件中查找关键字

我现在有一个目录,这个目录里面有很多的子目录和文件。我想在整个目录中的所有文件中实现对某一关键字的查找。
我知道linux里面有grep和sed工具。但我不知道具体怎么用,是不是要编一个shell才能实现啊??
还有windows下有没有实现这个在多文件查找关键字功能的好软件或工具啊
好吧,我来贴出正解吧。
专研了一下,发现其实可以有四种方法:
find 文件目录 -name ‘*.*' -exec grep 'xxx' + -n
或是
find 文件目录 -name '*.*' | xargs grep 'xxx' -n
或是
grep 'XXX' 文件目录 -Rn
或是
grep 'XXX' `find 文件目录 -name '*.*'`

谁能告诉我windows下有没有比较好的工具啊。。。

find . -print |xargs grep "xxx"
grep "xxx" ./ -rn

use windows built in search; 我记得notpad++ 有一个可以搜目录文件中关键字的功能
参考技术A linux

find 文件目录 -name '*.c' exec grep -l 'xxx' \;

or

find 文件目录 -name '*.c' | xargs grep -l 'xxx'追问

请解释一下上述的指令吧

追答

find 文件目录 -name '*.c' 这个是在文件目录里面查找所有以.c为扩展名的文件
后面的是在这个文件里面查找xxx关键字

追问

我试了一下,
应该是
find 文件目录 -name ‘*.*' -exec grep 'xxx' + -n;

find 文件目录 -name '*.*' | xargs grep 'xxx' -n;
是'+'号而不是'\'号。这难道是find的版本问题吗?

追答

'\'号 是find 里面exec要有的 至于+号我就不清楚了

以上是关于linux下怎样在一个文件里面查找一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

怎样在emacs中进行多文件字符串查找/替换

Linux系统下,在文件中查找某个字符串

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

怎样用JAVA把 文件中的字符串 放到 一个数组中

Linux shell中在vi打开的文件中查找关键字

在文件夹下所有文件中查找字符串(linux/windows)