使用grep时,它会突出显示与正则表达式匹配的行中的任何文本.
如果我想要这种行为怎么办,但grep打印出所有行?通过grep手册页快速浏览后,我空了.
我想在bash中检查文件是否包含特定字符串.我用过这个脚本,但它不起作用:
if [[ 'grep 'SomeString' $File' ]];then
# Some Actions
fi
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?
我需要递归搜索目录中所有文件和子目录中的指定字符串,并将此字符串替换为另一个字符串.
我知道找到它的命令可能如下所示:
grep 'string_to_find' -r ./*
Run Code Online (Sandbox Code Playgroud)
但是如何string_to_find用另一个字符串替换每个实例呢?
以下grep表达式成功列出当前目录和子目录中的所有.exe和.html文件.
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
Run Code Online (Sandbox Code Playgroud)
如何反转此结果以列出那些不是.html或.exe的结果.(也就是说!=.)
如何在LINUX中grep目录中的字符串或文本及其所有子目录的文件?
我经常使用该find命令搜索源代码,删除文件等等.令人讨厌的是,因为Subversion在其.svn/text-base/目录中存储了每个文件的重复项,所以我的简单搜索最终会得到大量重复的结果.例如,我想以递归方式搜索uint多个messages.h和messages.cpp文件:
# find -name 'messages.*' -exec grep -Iw uint {} +
./messages.cpp: Log::verbose << "Discarding out of date message: id " << uint(olderMessage.id)
./messages.cpp: Log::verbose << "Added to send queue: " << *message << ": id " << uint(preparedMessage->id)
./messages.cpp: Log::error << "Received message with invalid SHA-1 hash: id " << uint(incomingMessage.id)
./messages.cpp: Log::verbose << "Received " << *message << ": id " << uint(incomingMessage.id)
./messages.cpp: Log::verbose << "Sent message: …Run Code Online (Sandbox Code Playgroud) 在Linux机器上,我想遍历文件夹层次结构并获取其中所有不同文件扩展名的列表.
从shell实现这一目标的最佳方法是什么?
可能重复:
如何在文件中搜索多行模式?使用pcregrep
我正在运行a grep来查找任何*.sql文件,select其后跟单词customerName后跟单词from.此select语句可以跨越多行,并且可以包含制表符和换行符.
我在下面尝试了一些变化:
$ grep -liIr --include="*.sql" --exclude-dir="\.svn*" --regexp="select[a-zA-Z0-
9+\n\r]*customerName[a-zA-Z0-9+\n\r]*from"
Run Code Online (Sandbox Code Playgroud)
然而,这只是永远运行.请问有人能帮助我正确的语法吗?
你如何grep只返回匹配的行?即结果中省略了路径/文件名.
在这种情况下,我想查看当前目录中的所有.bar文件,搜索术语FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Run Code Online (Sandbox Code Playgroud) 我怎样才能在目录/子目录中搜索PDF文件的内容?我正在寻找一些命令行工具.似乎grep无法搜索PDF文件.