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下有没有比较好的工具啊。。。
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下怎样在一个文件里面查找一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章